OCSP-Stapling
Die NetScaler-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 NetScaler 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
- Alle Zwischenzertifikate enthalten 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.
NetScaler Appliances unterstützen OCSP-Stapling, wie in RFC 6066 definiert.
OCSP-Stapling wird nur im Front-End von NetScaler 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 NetScaler-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
Wenn das TLS 1.3-Protokoll verwendet wird, wird 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: Sie können die zwischengespeicherte Antwort des Serverzertifikats vom OCSP-Responder löschen, noch bevor das Timeout abläuft. In Version 12.1 Build 49.x und früher war es nicht möglich, den zwischengespeicherten Status im Zertifikatsschlü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
- Navigieren Sie in der GUI zu Traffic Management > SSL > Zertifikate > CA-Zertifikate.
- Wählen Sie im Detailbereich ein Zertifikat aus.
- 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 an der Eingabeaufforderung 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
- Navigieren Sie zu Traffic Management > SSL > Virtueller Server.
- Ö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 NetScaler 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:
- Fügen Sie einen virtuellen Server (VIP1) hinzu.
- Fügen Sie das Ausstellerzertifikat (CA1) hinzu und binden Sie es an VIP1.
- Fügen Sie drei Zertifikate S1, S2 und S3 hinzu. Die internen Responder resp1, resp2 und resp3 werden standardmäßig erstellt.
- Binden Sie S3 an VIP1.
- 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-->
Die 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
- Navigieren Sie zu Traffic Management > SSL > OCSP-Responder, und konfigurieren Sie einen OCSP-Responder.
- 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.
- 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.
- Wählen Sie optional OCSP Mandatoryaus.
Hinweis:
Der Parameter insert client certificate in den Befehlen
add ssl ocspResponder
undset ssl ocspResponder
ist nicht mehr gültig. Das heißt, der Parameter wird während der Konfiguration ignoriert.