Überwachen des Zertifikatsstatus mit OCSP
Online Certificate Status Protocol (OCSP) ist ein Internetprotokoll, das verwendet wird, um den Status eines Client-SSL-Zertifikats zu bestimmen. Citrix ADC Appliances unterstützen OCSP gemäß RFC 2560. OCSP bietet erhebliche Vorteile gegenüber Zertifikatsperrlisten (Certificate Revocation Lists, CRLs) in Bezug auf zeitnahe Informationen. Der aktuelle Widerrufsstatus eines Kundenzertifikats ist besonders bei Transaktionen mit großen Geldsummen und wertvollen Aktiengeschäften nützlich. Außerdem werden weniger System- und Netzwerkressourcen benötigt. Die Citrix ADC Implementierung von OCSP umfasst Anforderungsbatching und Antwort-Caching.
OCSP-Implementierung
Die OCSP-Validierung auf einer Citrix ADC Appliance beginnt, wenn die Appliance während eines SSL-Handshakes ein Clientzertifikat erhält. Zur Validierung des Zertifikats erstellt die Appliance eine OCSP-Anforderung und leitet sie an den OCSP-Responder weiter. Dazu verwendet die Appliance eine lokal konfigurierte URL. Die Transaktion befindet sich in einem angehaltenen Zustand, bis die Appliance die Antwort vom Server auswertet und festlegt, ob die Transaktion zugelassen oder abgelehnt werden soll. Wenn die Antwort des Servers über die konfigurierte Zeit hinaus verzögert wird und keine anderen Responder konfiguriert sind, lässt die Appliance die Transaktion zu oder zeigt einen Fehler an, je nachdem, ob die OCSP-Prüfung auf optional oder obligatorisch gesetzt wurde.
Die Appliance unterstützt das Stapeln von OCSP-Anforderungen und das Caching von OCSP-Antworten, um die Belastung des OCSP-Responders zu reduzieren und schnellere Antworten bereitzustellen.
OCSP-Anforderungsbatching
Jedes Mal, wenn die Appliance ein Clientzertifikat empfängt, sendet sie eine Anforderung an den OCSP-Responder. Um zu vermeiden, dass der OCSP-Responder überlastet wird, kann die Appliance den Status von mehr als einem Clientzertifikat in derselben Anforderung abfragen. Damit diese Funktion effizient funktioniert, muss ein Timeout definiert werden, damit die Verarbeitung eines einzelnen Zertifikats nicht übermäßig verzögert wird, während auf die Bildung eines Batches gewartet wird.
OCSP-Antwort-Zwischenspeicherung
Das Zwischenspeichern der vom OCSP-Responder empfangenen Antworten ermöglicht schnellere Antworten auf die Clients und reduziert die Belastung des OCSP-Responders. Nach Erhalt des Sperrstatus eines Clientzertifikats vom OCSP-Responder speichert die Appliance die Antwort lokal für einen vordefinierten Zeitraum. Wenn ein Clientzertifikat während eines SSL-Handshake empfangen wird, überprüft die Appliance zunächst ihren lokalen Cache auf einen Eintrag für dieses Zertifikat. Wenn ein Eintrag gefunden wird, der noch gültig ist (innerhalb des Cache-Timeoutlimits), wird er ausgewertet und das Clientzertifikat wird akzeptiert oder abgelehnt. Wenn kein Zertifikat gefunden wird, sendet die Appliance eine Anforderung an den OCSP-Responder und speichert die Antwort für eine konfigurierte Dauer im lokalen Cache.
Hinweis: Ab Release 12.1 Build 49.x wird das Cache-Timeout-Limit jetzt auf maximal 43200 Minuten (30 Tage) erhöht. Früher war die Grenze 1440 Minuten (ein Tag). Das erhöhte Limit hilft, die Suchvorgänge auf dem OCSP-Server zu reduzieren und SSL/TLS-Verbindungsfehler zu vermeiden, falls der OCSP-Server aufgrund von Netzwerkproblemen oder anderen Problemen nicht erreichbar ist.
Konfiguration des OCSP-Responders
Die Konfiguration von OCSP beinhaltet das Hinzufügen eines OCSP-Responders, das Binden des OCSP-Responders an ein Zertifikat der Zertifizierungsstelle (Certification Authority, CA) und das Binden des Zertifikats an einen virtuellen SSL-Server. Wenn Sie ein anderes Zertifikat an einen bereits konfigurierten OCSP-Responder binden müssen, müssen Sie zuerst den Responder aufheben und dann den Responder an ein anderes Zertifikat binden.
Hinzufügen eines OCSP-Responders mit der CLI
Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um OCSP zu konfigurieren und die Konfiguration zu überprüfen:
add ssl ocspResponder <name> -url <URL> [-cache ( ENABLED | DISABLED )[-cacheTimeout <positive_integer>]] [ -batchingDepth <positive_integer>][-batchingDelay <positive_integer>] [-resptimeout <positive_integer>] [-responderCert <string> | -trustResponder] [-producedAtTimeSkew <positive_integer>][-signingCert <string>][-useNonce ( YES | NO )][ -insertClientCert( YES | NO )]
<!--NeedCopy-->
bind ssl certKey [<certkeyName>] [-ocspResponder <string>] [-priority <positive_integer>]
<!--NeedCopy-->
bind ssl vserver <vServerName>@ (-certkeyName <string> ( CA [-ocspCheck ( Mandatory | Optional )]))
<!--NeedCopy-->
show ssl ocspResponder [<name>]
<!--NeedCopy-->
Beispiel:
add ssl ocspResponder ocsp_responder1 -url "http:// www.myCA.org:80/ocsp/" -cache ENABLED -cacheTimeout 30 -batchingDepth 8 -batchingDelay 100 -resptimeout 100 -responderCert responder_cert -producedAtTimeSkew 300 -signingCert sign_cert -insertClientCert YES
<!--NeedCopy-->
bind ssl certKey ca_cert -ocspResponder ocsp_responder1 -priority 1
<!--NeedCopy-->
bind ssl vserver vs1 -certkeyName ca_cert -CA -ocspCheck Mandatory
<!--NeedCopy-->
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
<!--NeedCopy-->
show certkey ca_cert
Name: ca_cert Status: Valid, Days to expiration:8907
Version: 3
…
1) VServer name: vs1 CA Certificate
1) OCSP Responder name: ocsp_responder1 Priority: 1
Done
<!--NeedCopy-->
sh ssl vs vs1
Advanced SSL configuration for VServer vs1:
DH: DISABLED
…
1) CertKey Name: ca_cert CA Certificate OCSPCheck: Mandatory
1) Cipher Name: DEFAULT
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
Ändern eines OCSP-Responders mit der CLI
Sie können den Respondernamen nicht ändern. Alle anderen Parameter können mit dem set ssl ocspResponder
Befehl geändert werden.
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>] [-batchingDepth <positive_integer>] [-batchingDelay <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 eines OCSP-Responders mit der 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-Bindings aus. Binden Sie einen OCSP-Responder.
- Navigieren Sie zu Datenverkehrsverwaltung > Lastenausgleich > Virtuelle Server, öffnen Sie einen virtuellen Server, und klicken Sie im Abschnitt Zertifikate, um ein Zertifizierungsstellenzertifikat zu binden.
- Wählen Sie optional OCSP Obligatorisch.