SSL-basierte Header-Einfügung konfigurieren
Da die Citrix ADC Appliance die gesamte SSL-bezogene Verarbeitung von den Servern auslagert, erhalten die Server nur HTTP-Datenverkehr. Unter bestimmten Umständen benötigt der Server bestimmte SSL-Informationen. Bei Sicherheitsüberprüfungen aktueller SSL-Transaktionen muss beispielsweise der Name des Clientsubjekts (der in einem X509-Zertifikat enthalten ist) 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 bei Bedarf das gesamte Clientzertifikat ein, einen Hash (auch bekannt als Fingerabdruck oder Fingerabdruck) des gesamten Clientzertifikats.
- Fügen Sie nur die spezifischen Felder aus dem Zertifikat ein, z. B. den Betreff, die Seriennummer, den Aussteller, die Signatur, die SSL-Sitzungskennung und die Verschlüsselungssammlung.
- Fügen Sie das Nicht-Vorher- oder Nicht-Nachher-Datum ein, das zur Bestimmung der Gültigkeit des Zertifikats verwendet wird.
Sie können SSL-basierte Einfügung nur für HTTP-basierte virtuelle SSL-Server und -Dienste aktivieren. Sie können es nicht auf virtuelle TCP-basierte SSL-Server und -Dienste anwenden. Außerdem muss die Clientauthentifizierung auf dem virtuellen SSL-Server aktiviert werden, da die eingefügten Werte aus dem Clientzertifikat entnommen werden, das dem virtuellen Server zur Authentifizierung angezeigt wird.
Um die SSL-basierte Header-Einfügung zu konfigurieren, erstellen Sie zunächst eine SSL-Aktion für jeden bestimmten Satz von Informationen, der eingefügt werden soll, 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 der Richtlinie zugeordnet werden soll. Binden Sie dann die Richtlinien an die virtuellen SSL-Server, die den SSL-Verkehr erhalten.
Im folgenden Beispiel werden Standard-Syntaxrichtlinien verwendet. Im folgenden Beispiel wird eine Steuerungsrichtlinie (ctrlpol
) erstellt, um die Clientauthentifizierung durchzuführen, wenn eine Anfrage für die URL /testsite/file5.html empfangen wird. Eine Datenrichtlinie (datapol
) wird erstellt, um eine Aktion (act1) durchzuführen, wenn die Clientauthentifizierung erfolgreich ist. Eine SSL-Aktion (act1) wird hinzugefügt, um die Zertifikatsdetails und den Namen des Ausstellers in die Anfrage einzufügen, bevor die Anfrage weitergeleitet wird. Bei anderen URLs ist die Clientauthentifizierung deaktiviert. Die Richtlinien werden dann an einen virtuellen SSL-Server (ssl_vserver) gebunden, der den SSL-Datenverkehr empfängt.
Befehlszeilenbeispiel zum Konfigurieren der SSL-basierten Header-Einfügung
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 der SSL-basierten Header-Einfügung mit der 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:
- Namen*
- Clientzertifikat
- Zertifikat-Tag
- Client-Zertifikataussteller
- Aussteller-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 Create SSL Policy die folgenden Parameter fest:
- Namen*
- Ausdruck
- Aktion anfordern
* 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 Virtual Servers.
-
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 Configure Virtual Server (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 in den HTTP-Header
Citrix ADC Appliances unterstützen jetzt das Einfügen des Fingerabdrucks (auch als Fingerabdruck bezeichnet) eines Zertifikats in den Header einer Anforderung, die an einen Backend-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 eine Übereinstimmung vorliegt.
Konfigurieren Sie eine SSL-Aktion, um den Fingerabdruck des Clientzertifikats zu aktivieren, geben Sie einen Header-Namen zum Einfügen des Client-Zertifikat-Fingerabdrucks und einen Digest (Hash-Wert) zum Berechnen des Fingerabdruckwerts an. Die Citrix ADC Appliance unterstützt SHA1- und SHA2-Digests (SHA224, SHA256, SHA384, SHA512). Die Appliance leitet den Fingerabdruckwert ab, indem der angegebene Digest der DER-Kodierung des Clientzertifikats berechnet wird. 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 eines Clientzertifikatfingerabdrucks mit der 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 der Kopfzeile, in die der Fingerabdruck des Clientzertifikats eingefügt werden soll.
certFingerprintDigest:
Digest-Algorithmus verwendet, um den Fingerabdruck des Client-Zertifikats zu berechnen.
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 eines Clientzertifikatfingerabdrucks mit der 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:
- Namen*
- Fingerabdruck des Client-Zertifikats
- FingerPrint Tag
- FingerPrint 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 Create SSL Policy die folgenden Parameter fest:
- Namen*
- 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 unter Erweiterte Einstellungen auf 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.