Citrix ADC

OCSP-Stapling

Die Citrix ADC-Implementierung von CRL und OCSP meldet nur den Sperrstatus von Clientzertifikaten. Um den Sperrstatus eines Serverzertifikats zu überprüfen, das während eines SSL-Handshakes empfangen wurde, muss ein Client eine Anforderung an eine Zertifizierungsstelle senden.

Bei Websites mit hohem Datenverkehr erhalten viele Clients dasselbe Serverzertifikat. Wenn jeder Client eine Anfrage nach dem Sperrstatus des Serverzertifikats senden würde, würde die Zertifizierungsstelle mit OCSP-Anfragen überschwemmt, um die Gültigkeit des Zertifikats zu überprüfen.

OCSP-Staplinglösung

Um unnötige Überlastung zu vermeiden, unterstützt die Citrix ADC Appliance jetzt OCSP-Stapling. Das heißt, zum Zeitpunkt des SSL-Handshakes kann die Appliance jetzt den Status eines Serverzertifikats an einen Client senden, nachdem die Antwort von einem OCSP-Responder überprüft wurde. Der Status eines Serverzertifikats wird an das Zertifikat “angeheftet”, das die Appliance im Rahmen des SSL-Handshakes an den Client sendet. Um die OCSP-Staplingfunktion verwenden zu können, müssen Sie sie auf einem virtuellen SSL-Server aktivieren und der Appliance einen OCSP-Responder hinzufügen.

Hinweise

  • Ab Version 13.1-30.x enthalten alle Zwischenzertifikate jetzt die OCSP-Antworterweiterung, wenn die folgenden Bedingungen erfüllt sind:
    • TLS 1.3 protocol is used
    • Client sends a status request

    Bisher enthielt nur das Serverzertifikat diese Erweiterung in die Antwort auf die Statusanforderung des Clients.

  • Bei den anderen Protokollen (einschließlich TLS 1.2) sendet der Server die OCSP-Antwort nur für das Serverzertifikat. Das heißt, RFC 6961 wird mit dem TLS 1.2-Protokoll nicht unterstützt.

  • Citrix ADC Appliances unterstützen OCSP-Stapling, wie in RFC 6066 definiert.

  • OCSP-Stapling wird nur im Front-End von Citrix ADC Appliances unterstützt.

  • Die ADC-Appliance verhält sich bei Verwendung des TLS 1.3-Protokolls wie folgt: Wenn die zwischengespeicherte OCSP-Antwort ungültig (leer oder abgelaufen) ist, wird eine Anforderung an den OCSP-Responder gesendet, der SSL-Handshake wird jedoch abgeschlossen, ohne auf die Antwort zu warten. Wenn die Antwort empfangen wird, wird sie zwischengespeichert und steht für zukünftige Statusanfragen von Clients zur Verfügung.

  • Die Citrix ADC-Unterstützung für OCSP-Stapling ist auf Handshakes mit TLS-Protokollversion 1.0 oder höher beschränkt.

OCSP-Antwort-Caching von Serverzertifikaten

Hinweis

Ab Version 13.1-30.x wird bei Verwendung des TLS 1.3-Protokolls die OCSP-Antwort für das Serverzertifikat und alle Zwischenzertifikate zwischengespeichert.

Wenn ein Client während des SSL-Handshakes den Sperrstatus des Serverzertifikats anfordert, überprüft die Appliance zunächst ihren lokalen Cache auf einen Eintrag für dieses Zertifikat. Wenn ein gültiger Eintrag gefunden wird, wird dieser ausgewertet und das Serverzertifikat und sein Status werden dem Client angezeigt. Wenn kein Sperrstatuseintrag gefunden wird, sendet die Appliance eine Anforderung für den Sperrstatus des Serverzertifikats an den OCSP-Responder. Wenn es eine Antwort erhält, sendet es das Zertifikat und den Sperrstatus an den Client. Wenn das nächste Aktualisierungsfeld in der OCSP-Antwort vorhanden ist, wird die Antwort für die konfigurierte Zeitdauer zwischengespeichert (Wert wird im Timeout-Feld angegeben).

Hinweis: Ab Version 12.1 Build 49.x können Sie die zwischengespeicherte Antwort des Serverzertifikats vom OCSP-Responder löschen, noch bevor das Timeout abläuft. Zuvor war es nicht möglich, den zwischengespeicherten Status im Zertifikatschlüsselpaar zu verwerfen, bis das konfigurierte Timeout abgelaufen war.

Um den zwischengespeicherten Status über die CLI zu löschen, geben Sie an der Eingabeaufforderung Folgendes ein:

clear ssl certKey <certkey name> -ocspstaplingCache
<!--NeedCopy-->

Beispiel:

clear ssl certKey s1 -ocspstaplingCache
<!--NeedCopy-->

So löschen Sie den zwischengespeicherten Status über die GUI

  1. Navigieren Sie in der GUI zu Traffic Management > SSL > Zertifikate > CA-Zertifikate.
  2. Wählen Sie im Detailbereich ein Zertifikat aus.
  3. Wählen Sie in der Liste Aktion auswählen die Option Löschen. Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf Ja.

OCSP-Staplingkonfiguration

Die Konfiguration des OCSP-Staplings umfasst die Aktivierung der Funktion und die Konfiguration von OCSP. Um OCSP zu konfigurieren, müssen Sie einen OCSP-Responder hinzufügen, den OCSP-Responder an ein CA-Zertifikat binden und das Zertifikat an einen virtuellen SSL-Server binden.

Hinweis:

OCSP-Responder mit nur einer HTTP-basierten URL werden unterstützt.

OCSP-Stapling über die CLI aktivieren

Geben Sie in der Befehlszeile Folgendes ein:

set ssl vserver <name> -ocspstapling [ENABLED | DISABLED]
<!--NeedCopy-->

Beispiel:

set ssl vserver vip1 -ocspStapling ENABLED
Done

sh ssl vserver vip1

     Advanced SSL configuration for VServer vip1:
     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: DISABLED
     SSL Redirect: DISABLED
     Non FIPS Ciphers: DISABLED
     SNI: ENABLED
     OCSP Stapling: ENABLED
     SSLv2: DISABLED SSLv3: DISABLED TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED
     Push Encryption Trigger: Always
     Send Close-Notify: YES

     ECC Curve: P_256, P_384, P_224, P_521

    1) CertKey Name: server_certificate1 Server Certificate

    1) Cipher Name: DEFAULT
     Description: Default cipher list with encryption strength >= 128bit
Done
<!--NeedCopy-->

Hinweis: Wenn das Standardprofil (erweitert) aktiviert ist, verwenden Sie den Befehl set ssl profile <profile name> -ocspStapling [ENABLED | DISABLED], um OCSP zu aktivieren oder zu deaktivieren.

OCSP-Stapling über die GUI aktivieren

  1. Navigieren Sie zu Traffic Management > SSL > Virtueller Server.
  2. Öffnen Sie einen virtuellen Server, und wählen Sie unter SSL-Parameterdie Option OCSP Staplingaus.

OCSP-Konfiguration

Ein OCSP-Responder wird dynamisch oder manuell hinzugefügt, um OCSP-Stapling-Anforderungen zu senden. Ein interner Responder wird dynamisch hinzugefügt, wenn Sie ein Serverzertifikat und dessen Ausstellerzertifikat basierend auf der OCSP-URL im Serverzertifikat hinzufügen. Ein manueller OCSP-Responder wird über die CLI oder GUI hinzugefügt. Um eine OCSP-Anforderung für ein Serverzertifikat zu senden, wählt die Citrix ADC Appliance einen OCSP-Responder basierend auf der Priorität aus, die ihm beim Binden an ein Ausstellerzertifikat zugewiesen wurde. Wenn ein Responder eine OCSP-Stapling-Anforderung nicht sendet, wird der Responder mit der nächsthöheren Priorität zum Senden der Anforderung ausgewählt. Wenn beispielsweise nur ein Responder manuell konfiguriert wird und dieser fehlschlägt und ein dynamisch gebundener Responder vorhanden ist, wird er zum Senden der OCSP-Anforderung ausgewählt.

Wenn die OCSP-URL nicht HTTP ist, wird kein interner OCSP-Responder erstellt.

Hinweis

Ein manuell hinzugefügter OCSP-Responder hat Vorrang vor einem dynamisch hinzugefügten Responder.

Unterschied zwischen einem manuell erstellten OCSP-Responder und einem intern erstellten OCSP-Responder

   
Manuell erstellter OCSP-Responder Intern (dynamisch) erstellter OCSP-Responder
Manuell erstellt und explizit an das Ausstellerzertifikat mit einer Priorität gebunden. Wird standardmäßig erstellt und gebunden, während ein Serverzertifikat und sein Ausstellerzertifikat (CA-Zertifikat) hinzugefügt werden. Der Name beginnt mit “ns_internal_”.
Eine Priorität zwischen 1 und 127 ist für einen konfigurierten Responder reserviert. Die Priorität wird ab 128 automatisch zugewiesen.
URL und Batch-Tiefe können geändert werden. URL und Batch-Tiefe können nicht geändert werden.
Direkt gelöscht. Wird nur gelöscht, wenn Sie das Serverzertifikat oder das CA-Zertifikat löschen.
Kann an jedes CA-Zertifikat gebunden werden. Standardmäßig an ein CA-Zertifikat gebunden. Kann nicht an ein anderes CA-Zertifikat gebunden werden.
In der Konfiguration gespeichert (ns.conf). Befehle zum Hinzufügen werden nicht in der Konfiguration gespeichert. Nur eingestellte Befehle werden gespeichert.
Wenn Sie drei OCSP-Responder mit den Prioritäten 1, 2 und 3 an dasselbe Ausstellerzertifikat binden und später Priorität 2 aufheben, sind die anderen Prioritäten nicht betroffen. Drei OCSP-Responder sind automatisch an ein Ausstellerzertifikat mit den Prioritäten 128, 129 bzw. 130 gebunden. Wenn Sie das Serverzertifikat entfernen, das zum Erstellen einer Antwortbindung mit Priorität 129 verwendet wurde, wird dieser Responder gelöscht. Außerdem wird die Priorität für den nächsten Responder (Priorität 130) automatisch auf 129 geändert.

Beispiel für die Bearbeitung von Anfragen:

  1. Fügen Sie einen virtuellen Server (VIP1) hinzu.
  2. Fügen Sie das Ausstellerzertifikat (CA1) hinzu und binden Sie es an VIP1.
  3. Fügen Sie drei Zertifikate S1, S2 und S3 hinzu. Die internen Responder resp1, resp2 und resp3 werden standardmäßig erstellt.
  4. Binden Sie S3 an VIP1.
  5. Eine Anfrage geht an VIP1. Responder resp3 ist ausgewählt.

Um einen internen OCSP-Responder dynamisch zu erstellen, benötigt die Appliance Folgendes:

  • Zertifikat des Ausstellers des Serverzertifikats (normalerweise das CA-Zertifikat).
  • Zertifikatschlüsselpaar des Serverzertifikats. Dieses Zertifikat muss die von der Zertifizierungsstelle angegebene OCSP-URL enthalten. Die URL wird als Name des dynamisch hinzugefügten internen Responders verwendet.

Ein interner OCSP-Responder hat dieselben Standardwerte wie ein manuell konfigurierter Responder.

Hinweis:

Das Caching ist bei einem internen Responder standardmäßig deaktiviert. Verwenden Sie den Befehl set ssl ocspResponder, um das Caching zu aktivieren.

Konfigurieren Sie OCSP mit der CLI

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um OCSP zu konfigurieren und die Konfiguration zu überprüfen:

add ssl certKey <certkeyName> (-cert <string> [-password]) [-key <string> | -fipsKey <string> | -hsmKey <string>] [-inform <inform>] [-expiryMonitor ( ENABLED | DISABLED ) [-notificationPeriod <positive_integer>]] [-bundle ( YES | NO )]

add ssl ocspResponder <name> -url <URL> [-cache ( ENABLED | DISABLED )[-cacheTimeout <positive_integer>]] [-resptimeout <positive_integer>] [-responderCert <string> | -trustResponder] [-producedAtTimeSkew <positive_integer>][-signingCert <string>][-useNonce ( YES | NO )][ -insertClientCert ( YES | NO )]

bind ssl certKey [<certkeyName>] [-ocspResponder <string>] [-priority <positive_integer>]

show ssl ocspResponder [<name>]
<!--NeedCopy-->

Parameter:

httpMethod:

HTTP-Methode zum Senden von OCSP-Anfragen. Für Anforderungen mit einer Länge von weniger als 255 Byte können Sie die HTTP GET-Methode für Abfragen an einen OCSP-Server konfigurieren. Wenn Sie die GET-Methode angeben, die Länge jedoch größer als 255 Byte ist, verwendet die Appliance die Standardmethode (POST).

Mögliche Werte: GET, POST

Standardwert: POST

ocspUrlResolveTimeout:

Zeit in Millisekunden, um auf eine OCSP-URL-Auflösung zu warten. Nach Ablauf dieser Zeit wird der Responder mit der nächsthöheren Priorität ausgewählt. Wenn alle Responder fehlschlagen, wird abhängig von den Einstellungen auf dem virtuellen Server eine Fehlermeldung angezeigt oder die Verbindung wird unterbrochen.

Minimaler Wert: 100

Maximaler Wert: 2000

Beispiel:

add ssl certkey root_ca1 –cert root_cacert.pem
add ssl ocspResponder ocsp_responder1 -url "http:// www.myCA.org:80/ocsp/" -cache ENABLED -cacheTimeout 30  -resptimeout 100 -responderCert responder_cert -producedAtTimeSkew 300 -signingCert sign_cert  -insertClientCert YES
bind ssl certKey root_ca1 -ocspResponder ocsp_responder1 -priority 1
sh ocspResponder ocsp_responder1
    1)Name: ocsp_responder1
    URL: http://www.myCA.org:80/ocsp/, IP: 192.128.22.22
    Caching: Enabled        Timeout: 30 minutes
    Batching: 8 Timeout: 100 mS
    HTTP Request Timeout: 100mS
    Request Signing Certificate: sign_cert
    Response Verification: Full, Certificate: responder_cert
    ProducedAt Time Skew: 300 s
    Nonce Extension: Enabled
     Client Cert Insertion: Enabled
    Done

show certkey root_ca1
    Name: root_ca1     Status: Valid,   Days to expiration:8907
    Version: 3
    …
    1)  OCSP Responder name: ocsp_responder1     Priority: 1
    Done
<!--NeedCopy-->

Ändern Sie OCSP über die CLI

Sie können den Namen eines OCSP-Responders nicht ändern, aber Sie können den Befehl set ssl ocspResponder verwenden, um einen der anderen Parameter zu ändern.

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um die Parameter festzulegen und die Konfiguration zu überprüfen:

set ssl ocspResponder <name> [-url <URL>] [-cache ( ENABLED | DISABLED)] [-cacheTimeout <positive_integer>]  [-resptimeout <positive_integer>] [ -responderCert <string> | -trustResponder][-producedAtTimeSkew <positive_integer>][-signingCert <string>] [-useNonce ( YES | NO )]

unbind ssl certKey [<certkeyName>] [-ocspResponder <string>]

bind ssl certKey [<certkeyName>] [-ocspResponder <string>] [-priority <positive_integer>]

show ssl ocspResponder [<name>]
<!--NeedCopy-->

Konfigurieren Sie OCSP über die GUI

  1. Navigieren Sie zu Traffic Management > SSL > OCSP-Responder, und konfigurieren Sie einen OCSP-Responder.
  2. Navigieren Sie zu Traffic Management > SSL > Zertifikate, wählen Sie ein Zertifikat aus, und wählen Sie in der Liste Aktion die Option OCSP-Bindungenaus. Binden Sie einen OCSP-Responder.
  3. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server, öffnen Sie einen virtuellen Server, und klicken Sie im Abschnitt Zertifikate auf, um ein CA-Zertifikat zu binden.
  4. Wählen Sie optional OCSP Mandatoryaus.

Hinweis:

Der Parameter insert client certificate in den Befehlen add ssl ocspResponder und set ssl ocspResponderist nicht mehr gültig. Das heißt, der Parameter wird während der Konfiguration ignoriert.