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 können das gesamte Clientzertifikat, falls erforderlich, einen Hash (auch als Fingerabdruck oder Fingerabdruck bezeichnet) des gesamten Clientzertifikats oder nur die spezifischen Felder aus dem Zertifikat einfügen, wie Betreff, Seriennummer, Aussteller, Signatur, SSL-Sitzungs-ID, Chiffre Suite oder das Nicht-Vor- oder Nicht-Nach-Datum verwendet, um die Gültigkeit des Zertifikats zu bestimmen.

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-Datenverkehr empfangen.

Im folgenden Beispiel werden Standard-Syntaxrichtlinien verwendet. Im folgenden Beispiel wird eine Steuerungsrichtlinie (ctrlpol) erstellt, um die Clientauthentifizierung durchzuführen, wenn eine Anforderung für die URL /testsite/file5.htmlempfangen wird. Eine Datenrichtlinie (Datapol) wird erstellt, um eine Aktion (act1) auszuführen, wenn die Clientauthentifizierung erfolgreich ist, und eine SSL-Aktion (act1) wird hinzugefügt, um die Zertifikatdetails und den Namen des Ausstellers in die Anforderung einzufügen, bevor die Anforderung 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

Konfigurieren der SSL-basierten Header-Einfügung mit der GUI

  1. Navigieren Sie zu Traffic Management > SSL > Richtlinien.

  2. Klicken Sie im Detailbereich auf der Registerkarte Aktionen auf Hinzufügen.

  3. Legen Sie im Dialogfeld SSL-Aktion erstellen die folgenden Parameter fest:

    • Name*
    • Client-Zertifikat
    • Zertifikat-Tag
    • Client-Zertifikataussteller
    • Aussteller-Tag

    * Ein erforderlicher Parameter

  4. Klicken Sie auf Erstellen, und klicken Sie dann auf Schließen.

  5. Klicken Sie auf der Registerkarte auf Hinzufügen, um eine Steuerungsrichtlinie zu erstellen.

  6. Legen Sie im Dialogfeld SSL-Richtlinie erstellen die folgenden Parameter fest:

    • Name*
    • Ausdruck
    • Aktion anfordern

    * Ein erforderlicher Parameter

  7. Klicken Sie auf Erstellen, und klicken Sie dann auf Schließen.

  8. Erstellen Sie eine Datenrichtlinie, indem Sie die Schritte 5 bis 7 wiederholen.

  9. Erweitern Sie im Navigationsbereich SSL-Offload, und klicken Sie dann auf Virtuelle Server.

  10. 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.

  11. Klicken Sie im Dialogfeld Virtuellen Server konfigurieren (SSL-Offload) auf SSL-Einstellungen, und klicken Sie dann auf SSL-Richtlinien.

  12. Klicken Sie im Dialogfeld SSL-Richtlinien binden/aufheben auf Richtlinie einfügen. Wählen Sie unter Richtlinienname die Richtlinie aus, die Sie in den Schritten 5 bis 7 erstellt haben.

  13. Klicken Sie auf OK, und klicken Sie dann auf Schließen. In der Statusleiste wird eine Meldung angezeigt, die besagt, dass die Richtlinie erfolgreich gebunden wurde.

  14. 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.

Sie müssen eine SSL-Aktion konfigurieren, um den Fingerabdruck des Clientzertifikats zu aktivieren, einen Headernamen zum Einfügen des Clientzertifikat-Fingerabdrucks und einen Digest (Hash-Wert) zum Berechnen des Fingerabdruckwerts angeben. 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>

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
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
add ssl policy pol1 -rule true -action act1
Done
bind ssl vserver v1 -policyName pol1 -priority 10
Done
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

Konfigurieren einer SSL-Aktion zum Einfügen eines Clientzertifikatfingerabdrucks mit der GUI

  1. Navigieren Sie zu Traffic Management > SSL > Richtlinien.
  2. Wählen Sie im Detailbereich die Registerkarte SSL-Aktionen aus, und klicken Sie auf Hinzufügen .
  3. Legen Sie im Dialogfeld SSL-Aktion erstellen die folgenden Parameter fest:
    • Name*
    • Fingerabdruck des Client-Zertifikats
    • FingerPrint Tag
    • Fingerprint Digest *Erforderlicher Parameter
  4. Klicken Sie auf Erstellen.
  5. Wählen Sie die Registerkarte SSL-Richtlinien und klicken Sie auf Hinzufügen .
  6. Legen Sie im Dialogfeld SSL-Richtlinie erstellen die folgenden Parameter fest:
    • Name*
    • Aktion
    • Ausdruck *Ein erforderlicher Parameter
  7. Klicken Sie auf Erstellen.
  8. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server .
  9. 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.
  10. Klicken Sie unter Erweiterte Einstellungen auf SSL-Richtlinien.
  11. Klicken Sie unter SSL-Richtlinie, und wählen Sie im Dialogfeld Richtlinienbindung die zuvor erstellte Richtlinie aus, und weisen Sie eine Priorität zu.
  12. Klicken Sie auf Bind.