Ü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 sich die Antwort des Servers über die konfigurierte Zeit hinaus verzögert 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 eingestellt 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 dies 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 Stapels 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 )]
bind ssl certKey [<certkeyName>] [-ocspResponder <string>] [-priority <positive_integer>]
bind ssl vserver <vServerName>@ (-certkeyName <string> ( CA [-ocspCheck ( Mandatory | Optional )]))
show ssl ocspResponder [<name>]

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
bind ssl certKey ca_cert -ocspResponder ocsp_responder1 -priority 1
bind ssl vserver vs1 -certkeyName ca_cert -CA -ocspCheck Mandatory
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 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
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

Ändern eines OCSP-Responders mit der CLI

Sie können den Respondernamen nicht ändern. Alle anderen Parameter können mit dem Befehl set ssl OCSPresponder 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>]

Konfigurieren eines OCSP-Responders mit der 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-Bindings aus. Binden Sie einen OCSP-Responder.
  3. Navigieren Sie zu Datenverkehrsverwaltung > Lastenausgleich > Virtuelle Server, öffnen Sie einen virtuellen Server, und klicken Sie im Abschnitt Zertifikate, um ein Zertifizierungsstellenzertifikat zu binden.
  4. Wählen Sie optional OCSP Obligatorischaus.