Konfigurieren des SSL-basierten Header-Einfügens
Da die NetScaler-Appliance die gesamte SSL-bezogene Verarbeitung von den Servern auslädt, erhalten die Server nur HTTP-Verkehr. Unter bestimmten Umständen benötigt der Server bestimmte SSL-Informationen. Bei Sicherheitsüberprüfungen aktueller SSL-Transaktionen muss beispielsweise der Name des Clientsubjekts (in einem X509-Zertifikat enthalten) auf dem Server protokolliert werden.
Solche Daten können an den Server gesendet werden, indem sie als Name-Wert-Paar in den HTTP-Header eingefügt werden. Sie haben folgende Optionen:
- Fügen Sie das gesamte Clientzertifikat, falls erforderlich, einen Hash (auch als Fingerabdruck oder Fingerabdruck bezeichnet) des gesamten Clientzertifikats ein.
- Fügen Sie nur die spezifischen Felder aus dem Zertifikat ein, z. B. den Betreff, die Seriennummer, den Aussteller, die Signatur, die SSL-Sitzungs-ID und die Verschlüsselungssammlung.
- Geben Sie das Nicht-Vorher- oder Nicht-Nach-Datum ein, das zur Bestimmung der Gültigkeit des Zertifikats verwendet wurde.
Sie können die SSL-basierte Einfügung nur für HTTP-basierte virtuelle SSL-Server und -Dienste aktivieren. Sie können es nicht auf TCP-basierte virtuelle SSL-Server und -Dienste anwenden. Außerdem muss die Clientauthentifizierung auf dem virtuellen SSL-Server aktiviert sein, da die eingefügten Werte dem Clientzertifikat entnommen werden, das dem virtuellen Server zur Authentifizierung vorgelegt wird.
Um die SSL-basierte Header-Einfügung zu konfigurieren, erstellen Sie zuerst eine SSL-Aktion für jeden spezifischen Satz von Informationen, die eingefügt werden sollen, und erstellen Sie dann Richtlinien, die die Verbindungen identifizieren, für die Sie die Informationen einfügen möchten. Geben Sie beim Erstellen jeder Richtlinie die Aktion an, die mit der Richtlinie verknüpft werden soll. Binden Sie dann die Richtlinien an die virtuellen SSL-Server, die den SSL-Verkehr empfangen.
Im folgenden Beispiel werden erweiterte Richtlinienrichtlinien verwendet. Im folgenden Beispiel wird eine Steuerungsrichtlinie (ctrlpol
) erstellt, um die Clientauthentifizierung durchzuführen, wenn eine Anforderung für die URL /testsite/file5.html empfangen wird. Eine Datenrichtlinie (datapol
) wird erstellt, um eine Aktion auszuführen (act1), wenn die Clientauthentifizierung erfolgreich ist. Eine SSL-Aktion (act1) wird hinzugefügt, um die Zertifikatsdetails und den Namen des Ausstellers in die Anforderung einzufügen, bevor die Anforderung weitergeleitet wird. Für andere URLs ist die Clientauthentifizierung deaktiviert. Die Richtlinien sind dann an einen virtuellen SSL-Server (ssl_vserver) gebunden, der den SSL-Verkehr empfängt.
Befehlszeilenbeispiel für die Konfiguration des SSL-basierten Header-Einfügens
Beispiel:
add ssl action act1 -clientCert ENABLED -certHeader mycert -clientcertissuer ENABLED -certIssuerHeader myissuer
add ssl policy datapol -rule HTTP.REQ.URL.EQ("/testsite/file5.html") -action act1
add ssl policy ctrlpol -rule HTTP.REQ.URL.EQ("/testsite/file5.html") -action CLIENTAUTH
bind ssl vserver ssl_vserver -policyName ctrlpol -priority 1
bind ssl vserver ssl_vserver -policyName datapol -priority 1
Done
<!--NeedCopy-->
Konfigurieren Sie die SSL-basierte Header-Einfügung über die GUI
-
Navigieren Sie zu Traffic Management > SSL > Richtlinien.
-
Klicken Sie im Detailbereich auf der Registerkarte Aktionen auf Hinzufügen.
-
Legen Sie im Dialogfeld SSL-Aktion erstellen die folgenden Parameter fest:
- Nome*
- Clientzertifikat
- Zertifikat-Tag
- Aussteller des Client-Zertifikats
- Emittenten-Tag
* Ein erforderlicher Parameter
-
Klicken Sie auf Erstellenund dann auf Schließen.
-
Klicken Sie auf der Registerkarte auf Hinzufügen, um eine Steuerungsrichtlinie zu erstellen.
-
Legen Sie im Dialogfeld SSL-Richtlinie erstellen die folgenden Parameter fest:
- Nome*
- Ausdruck
- Aktion anfragen
* Ein erforderlicher Parameter
-
Klicken Sie auf Erstellenund dann auf Schließen.
-
Erstellen Sie eine Datenrichtlinie, indem Sie die Schritte 5 bis 7 wiederholen.
-
Erweitern Sie im Navigationsbereich SSL-Offload, und klicken Sie dann auf Virtuelle Server.
-
Wählen Sie im Detailbereich aus der Liste der virtuellen Server den virtuellen Server aus, an den Sie die SSL-Richtlinien binden möchten, und klicken Sie dann auf Öffnen.
-
Klicken Sie im Dialogfeld Virtuellen Server konfigurieren (SSL-Offload) auf SSL-Einstellungenund dann auf SSL-Richtlinien.
-
Klicken Sie im Dialogfeld SSL-Richtlinien binden/aufheben auf Richtlinie einfügen. Wählen Sie unter Richtliniennamedie Richtlinie aus, die Sie in den Schritten 5 bis 7 erstellt haben.
-
Klicken Sie auf OKund dann auf Schließen. In der Statusleiste wird eine Meldung angezeigt, die besagt, dass die Richtlinie erfolgreich gebunden wurde.
-
Wiederholen Sie die Schritte 12 und 13 und wählen Sie die Richtlinie aus, die Sie in Schritt 8 erstellt haben.
Konfigurieren einer SSL-Richtlinienaktion zum Einfügen des Fingerabdrucks des Clientzertifikats im HTTP-Header
NetScaler-Appliances unterstützen jetzt das Einfügen des Fingerabdrucks (auch Fingerabdruck genannt) eines Zertifikats in den Header einer Anforderung, die an einen Back-End-Server gesendet wird. Wenn die Clientauthentifizierung aktiviert ist, berechnet die Appliance den Fingerabdruck des Zertifikats und verwendet eine SSL-Richtlinienaktion, um den Fingerabdruck in die Anforderung einzufügen. Der Server sucht nach dem Fingerabdruck und gewährt sicheren Zugriff, wenn es eine Übereinstimmung gibt.
Konfigurieren Sie eine SSL-Aktion, um den Fingerabdruck des Clientzertifikats zu aktivieren, geben Sie einen Header-Namen zum Einfügen des Clientzertifikat-Fingerabdrucks an und einen Digest (Hash-Wert), um den Fingerabdruckwert zu berechnen. Die NetScaler-Appliance unterstützt SHA1- und SHA2-Digests (SHA224, SHA256, SHA384, SHA512). Die Appliance leitet den Fingerabdruckwert ab, indem sie den angegebenen Digest der DER-Kodierung des Clientzertifikats berechnet. Erstellen Sie dann eine SSL-Richtlinie, die diese Aktion angibt, und binden Sie die Richtlinie an einen virtuellen SSL-Server.
Konfigurieren einer SSL-Aktion zum Einfügen des Fingerabdrucks des Clientzertifikats über die CLI
Geben Sie an der Eingabeaufforderung Folgendes ein:
add ssl action <name> -clientCertFingerprint ( ENABLED | DISABLED ) -certFingerprintHeader <string> -certFingerprintDigest <certFingerprintDigest>
<!--NeedCopy-->
Argumente:
clientCertFingerprint:
Fügen Sie den Fingerabdruck des Zertifikats in den HTTP-Header der Anforderung ein, die an den Webserver gesendet wird. Der Fingerabdruck wird abgeleitet, indem der angegebene Hash-Wert (z. B. SHA256) der DER-Kodierung des Clientzertifikats berechnet wird.
certFingerprintHeader:
Name des Headers, in den der Fingerabdruck des Clientzertifikats eingefügt werden soll.
certFingerprintDigest:
Digest-Algorithmus zur Berechnung des Fingerabdrucks des Clientzertifikats.
Mögliche Werte: SHA1, SHA224, SHA256, SHA384, SHA512
Beispiel:
add ssl action act1 -clientcertfingerprint ENABLED -certfingerprintdigest SHA1 -certfingerprintheader example
Done
<!--NeedCopy-->
sh ssl action act1
1) Name: act1
Type: Data Insertion
Cert Fingerprint Header: ENABLED
Cert-Fingerprint Tag: example
Cert-Fingerprint Digest Algorithm: SHA1
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
<!--NeedCopy-->
add ssl policy pol1 -rule true -action act1
Done
<!--NeedCopy-->
bind ssl vserver v1 -policyName pol1 -priority 10
Done
<!--NeedCopy-->
sh ssl vserver v1
Advanced SSL configuration for VServer v1:
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: ENABLED Client Cert Required: Mandatory
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
OCSP Stapling: DISABLED
SSLv2: DISABLED SSLv3: DISABLED TLSv1.0: DISABLED TLSv1.1: ENABLED TLSv1.2: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
ECC Curve: P_256, P_384, P_224, P_521
1) CertKey Name: intca6 CA Certificate CRLCheck: Mandatory CA_Name Sent
2) CertKey Name: intca5 CA Certificate CRLCheck: Mandatory CA_Name Sent
3) CertKey Name: intca4 CA Certificate CRLCheck: Mandatory CA_Name Sent
4) CertKey Name: intca3 CA Certificate CRLCheck: Mandatory CA_Name Sent
5) CertKey Name: intca2 CA Certificate CRLCheck: Mandatory CA_Name Sent
6) CertKey Name: intca1 CA Certificate CRLCheck: Mandatory CA_Name Sent
Data policy
1) Policy Name: pol1 Priority: 10
1) Cipher Name: DEFAULT
Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->
Konfigurieren einer SSL-Aktion zum Einfügen des Fingerabdrucks des Clientzertifikats über die GUI
- Navigieren Sie zu Traffic Management > SSL > Richtlinien.
- Wählen Sie im Detailbereich die Registerkarte SSL-Aktionen aus und klicken Sie auf Hinzufügen.
- Legen Sie im Dialogfeld SSL-Aktion erstellen die folgenden Parameter fest:
- Nome*
- Fingerabdruck für Client-Zertifikate
- Fingerabdruck-Tag
- Fingerabdruck-Digest *Ein erforderlicher Parameter
- Klicken Sie auf Erstellen.
- Wählen Sie die Registerkarte SSL-Richtlinien und klicken Sie auf Hinzufügen.
- Legen Sie im Dialogfeld SSL-Richtlinie erstellen die folgenden Parameter fest:
- Nome*
- Aktion
- Ausdruck *Ein erforderlicher Parameter
- Klicken Sie auf Erstellen.
- Navigieren Sie zu Traffic Management> Load Balancing > Virtuelle Server.
- Wählen Sie im Detailbereich aus der Liste der virtuellen SSL-Server den virtuellen Server aus, an den Sie die SSL-Richtlinie binden möchten, und klicken Sie dann auf Bearbeiten.
- Klicken Sie in Erweiterte Einstellungenauf SSL-Richtlinien.
- Klicken Sie unter SSL-Richtlinie, und wählen Sie im Dialogfeld Richtlinienbindung die zuvor erstellte Richtlinie aus, und weisen Sie eine Priorität zu.
- Klicken Sie auf Bind.