Clientauthentifizierung oder Mutual TLS (mTLS)
In einer typischen SSL-Transaktion prüft der Client, der über eine sichere Verbindung mit einem Server eine Verbindung herstellt, die Gültigkeit des Servers. Dazu prüft es das Zertifikat des Servers, bevor die SSL-Transaktion initiiert wird. Manchmal möchten Sie den Server jedoch so konfigurieren, dass er den Client authentifiziert, der eine Verbindung zu ihm herstellt.
Hinweis: Ab Version 13.0 Build 41.x unterstützt die Citrix ADC-Appliance Zertifikatsanforderungsnachrichten, die in mehr als einen Datensatz fragmentiert sind, sofern die Gesamtgröße 32 KB beträgt. Zuvor betrug die maximal unterstützte Größe 16 KB und die Fragmentierung wurde nicht unterstützt.
Wenn die Clientauthentifizierung auf einem virtuellen SSL-Server aktiviert ist, fragt die Citrix ADC-Appliance während des SSL-Handshakes nach dem Clientzertifikat. Die Appliance prüft das vom Client vorgelegte Zertifikat auf normale Einschränkungen wie die Signatur des Ausstellers und das Ablaufdatum.
Hinweis Damit
die Appliance die Signaturen des Ausstellers überprüfen kann, muss das Zertifikat der Zertifizierungsstelle, die das Clientzertifikat ausgestellt hat, wie folgt lauten:
- Auf dem Gerät installiert.
- An den virtuellen Server gebunden, mit dem der Client Transaktionen durchführt.
Wenn das Zertifikat gültig ist, ermöglicht die Appliance dem Client den Zugriff auf alle sicheren Ressourcen. Wenn das Zertifikat jedoch ungültig ist, löscht die Appliance die Clientanforderung während des SSL-Handshakes.
Die Appliance überprüft das Clientzertifikat, indem sie zuerst eine Kette von Zertifikaten bildet, beginnend mit dem Clientzertifikat und endend mit dem Stammzertifizierungsstellenzertifikat für den Client (z. B. Verisign). Das Stammzertifizierungsstellenzertifikat kann ein oder mehrere zwischengeschaltete CA-Zertifikate enthalten (wenn die Stammzertifizierungsstelle das Clientzertifikat nicht direkt ausstellt).
Bevor Sie die Clientauthentifizierung auf der Citrix ADC-Appliance aktivieren, stellen Sie sicher, dass ein gültiges Clientzertifikat auf dem Client installiert ist. Aktivieren Sie dann die Clientauthentifizierung für den virtuellen Server, der die Transaktionen abwickelt. Binden Sie abschließend das Zertifikat der Zertifizierungsstelle, die das Clientzertifikat ausgestellt hat, an den virtuellen Server auf der Appliance.
Hinweis: Eine Citrix ADC MPX-Appliance unterstützt eine Zertifikatsschlüsselpaargröße von 512 Bit bis 4096 Bit. Das Zertifikat muss mit einem der folgenden Hash-Algorithmen signiert werden:
- MD5
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
Wenn auf einer SDX-Appliance ein SSL-Chip einer VPX-Instanz zugewiesen ist, gilt die Unterstützung der Zertifikatsschlüsselpaargröße einer MPX-Appliance. Andernfalls gilt die normale Unterstützung der Zertifikat-Schlüssel-Paargröße einer VPX-Instanz.
Eine virtuelle Citrix ADC-Appliance (VPX-Instanz) unterstützt Zertifikate mit mindestens 512 Bit bis zu den folgenden Größen:
- 4096-Bit-Serverzertifikat auf dem virtuellen Server
- 4096-Bit-Clientzertifikat im Dienst
- 4096-Bit-CA-Zertifikat
- 4096-Bit-Zertifikat auf dem physischen Server
Hinweis: Ab Version 13.0 Build 79.x wird die Clientauthentifizierung mit einem 4096-Bit-RSA-Clientzertifikat während eines SSL-Handshakes auf der VPX-Plattform unterstützt.
Hinweise:
- Informationen zu MPX FIPS-Einschränkungen finden Sie unter Einschränkungen bei MPX FIPS.
- Informationen zu SDX FIPS-Einschränkungen finden Sie unter SDX FIPS-Einschränkungen.
Bereitstellen des Clientzertifikats
Bevor Sie die Clientauthentifizierung konfigurieren, muss ein gültiges Clientzertifikat auf dem Client installiert sein. Ein Clientzertifikat enthält Details zum spezifischen Clientsystem, das sichere Sitzungen mit der Citrix ADC-Appliance erstellt. Jedes Clientzertifikat ist eindeutig und darf nur von einem Clientsystem verwendet werden.
Unabhängig davon, ob Sie das Clientzertifikat von einer Zertifizierungsstelle erhalten, ein vorhandenes Clientzertifikat verwenden oder ein Clientzertifikat auf der Citrix ADC-Appliance generieren, müssen Sie das Zertifikat in das richtige Format konvertieren. Auf der Citrix ADC-Appliance werden Zertifikate entweder im PEM- oder DER-Format gespeichert und müssen in das PKCS #12 -Format konvertiert werden, bevor sie auf dem Clientsystem installiert werden. Nachdem Sie das Zertifikat konvertiert und auf das Clientsystem übertragen haben, stellen Sie sicher, dass es auf diesem System installiert und für die Clientanwendung konfiguriert ist. Die Anwendung, z. B. ein Webbrowser, muss Teil der SSL-Transaktionen sein.
Anweisungen zum Konvertieren eines Zertifikats aus dem PEM- oder DER-Format in das PKCS #12 -Format finden Sie unter Importieren und Konvertieren von SSL-Dateien.
Anweisungen zum Generieren eines Clientzertifikats finden Sie unter Erstellen eines Zertifikats.
Aktivieren der clientzertifikatbasierten Authentifizierung
Standardmäßig ist die Clientauthentifizierung auf der Citrix ADC-Appliance deaktiviert, und alle SSL-Transaktionen werden ohne Authentifizierung des Clients ausgeführt. Sie können die Clientauthentifizierung so konfigurieren, dass sie im Rahmen des SSL-Handshakes entweder optional oder obligatorisch ist.
Wenn die Clientauthentifizierung optional ist, fordert die Appliance das Clientzertifikat an, fährt jedoch mit der SSL-Transaktion fort, auch wenn der Client ein ungültiges Zertifikat vorlegt. Wenn die Clientauthentifizierung erforderlich ist, beendet die Appliance den SSL-Handshake, wenn der SSL-Client kein gültiges Zertifikat bereitstellt.
Vorsicht: Citrix empfiehlt, dass Sie die richtigen Zugriffssteuerungsrichtlinien definieren, bevor Sie die clientzertifikatbasierte Authentifizierungsprüfung auf optional ändern.
Hinweis: Die Clientauthentifizierung ist für einzelne virtuelle SSL-Server konfiguriert, nicht global.
Clientzertifikatsbasierte Authentifizierung mithilfe der CLI aktivieren
Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um die clientzertifikatbasierte Authentifizierung zu aktivieren und die Konfiguration zu überprüfen:
set ssl vserver <vServerName> [-clientAuth (ENABLED | DISABLED)] [-clientCert (MANDATORY | OPTIONAL)]
show ssl vserver <vServerName>
<!--NeedCopy-->
Beispiel:
set ssl vserver vssl -clientAuth ENABLED -clientCert Mandatory
Done
show ssl vserver vssl
Advanced SSL configuration for VServer vssl:
DH: 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
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.2: ENABLED TLSv1.2: ENABLED
1) CertKey Name: sslckey Server Certificate
1) Policy Name: client_cert_policy Priority: 0
1) Cipher Name: DEFAULT
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
Clientzertifikatsbasierte Authentifizierung mithilfe der GUI aktivieren
- Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server, und öffnen Sie einen virtuellen Server.
- Wählen Sie im Abschnitt SSL-Parameter die Option Clientauthentifizierung und in der Liste Clientzertifikat die Option Obligatorisch aus.
Hinweis:
Wenn die Clientauthentifizierung auf obligatorisch festgelegt ist und das Clientzertifikat Richtlinienerweiterungen enthält, schlägt die Zertifikatsüberprüfung fehl. Ab Version 12.0-56.x können Sie einen Parameter im Front-End-SSL-Profil festlegen, um diese Prüfung zu überspringen. Der Parameter ist standardmäßig deaktiviert. Das heißt, die Prüfung wird standardmäßig durchgeführt.
Überspringen Sie die Überprüfung der Richtlinienerweiterung während der Clientauthentifizierung mithilfe der CLI
Geben Sie an der Eingabeaufforderung Folgendes ein:
set ssl profile ns_default_ssl_profile_frontend -clientauth ENABLED -skipClientCertPolicyCheck ENABLED
Parameter
skipClientCertPolicyCheck
Control policy extension check, if present inside the X509 certificate chain. Applicable only if client authentication is enabled and client certificate is set to mandatory. Possible values functions as follows:
- ENABLED: Skip the policy check during client authentication.
- DISABLED: Perform policy check during client authentication.
Possible values: ENABLED, DISABLED
Default: DISABLED
<!--NeedCopy-->
Überspringen Sie die Überprüfung der Richtlinienerweiterung während der Clientauthentifizierung mithilfe der GUI
- Navigieren Sie zu System > Profile > SSL-Profile.
- Erstellen Sie ein neues Front-End-Profil oder bearbeiten Sie ein vorhandenes Front-End-Profil.
- Stellen Sie sicher, dass die Clientauthentifizierung aktiviert und das Clientzertifikat auf obligatorisch festgelegt ist
- Wählen Sie Überprüfung der Clientzertifikatrichtlinie überspringen.
Binden von CA-Zertifikaten an den virtuellen Server
Eine Zertifizierungsstelle, deren Zertifikat auf der Citrix ADC-Appliance vorhanden ist, muss das für die Clientauthentifizierung verwendete Clientzertifikat ausstellen. Binden Sie dieses Zertifikat an den virtuellen Citrix ADC-Server, der die Clientauthentifizierung durchführt.
Binden Sie das CA-Zertifikat so an den virtuellen SSL-Server, dass die Appliance bei der Überprüfung des Clientzertifikats eine vollständige Zertifikatkette bilden kann. Andernfalls schlägt die Bildung der Zertifikatkette fehl und dem Client wird der Zugriff verweigert, auch wenn sein Zertifikat gültig ist.
Sie können CA-Zertifikate in beliebiger Reihenfolge an den virtuellen SSL-Server binden. Die Appliance bildet bei der Überprüfung des Clientzertifikats die richtige Reihenfolge.
Wenn der Client beispielsweise ein von CA_Aausgestelltes Zertifikat vorlegt, wobei CA_A eineZwischenzertifizierungsstelle ist, deren Zertifikat von CA_Bausgestellt wird, dessen Zertifikat wiederum von einer vertrauenswürdigen Stammzertifizierungsstelle, Root_CA, einer Kette von Zertifikaten, die Alle drei Zertifikate müssen an den virtuellen Server der Citrix ADC-Appliance gebunden sein.
Anweisungen zum Binden eines oder mehrerer Zertifikate an den virtuellen Server finden Sie unter Binden des Zertifikatschlüsselpaars an den virtuellen SSL-Server.
Anweisungen zum Erstellen einer Zertifikatkette finden Sie unter Erstellen einer Zertifikatkette.
Strengere Kontrolle der Validierung von Clientzertifikaten
Die Citrix ADC-Appliance akzeptiert gültige Zwischen-CA-Zertifikate, wenn sie von einer einzigen Root-CA ausgestellt werden. Das heißt, wenn nur das Root-CA-Zertifikat an den virtuellen Server gebunden ist und diese Root-CA jedes mit dem Clientzertifikat gesendete Zwischenzertifikat validiert, vertraut die Appliance der Zertifikatkette und der Handshake ist erfolgreich.
Wenn ein Client jedoch eine Kette von Zertifikaten im Handshake sendet, kann keines der Zwischenzertifikate mithilfe eines CRL- oder OCSP-Responders validiert werden, es sei denn, dieses Zertifikat ist an den virtuellen SSL-Server gebunden. Selbst wenn eines der Zwischenzertifikate widerrufen wird, ist der Handshake daher erfolgreich. Im Rahmen des Handshakes sendet der virtuelle SSL-Server die Liste der an ihn gebundenen CA-Zertifikate. Für eine strengere Kontrolle können Sie den virtuellen SSL-Server so konfigurieren, dass er nur ein Zertifikat akzeptiert, das von einem der an diesen virtuellen Server gebundenen CA-Zertifikate signiert ist. Dazu müssen Sie die Einstellung clientAuthuseBoundCachain im an den virtuellen Server gebundenen SSL-Profil aktivieren. Der Handshake schlägt fehl, wenn eines der an den virtuellen Server gebundenen CA-Zertifikate das Clientzertifikat nicht signiert hat.
Beispiel: Zwei Clientzertifikate, clientcert1 und clientcert2, werden von den Zwischenzertifikaten Int-CA-A bzw. int-CA-B signiert. Die Zwischenzertifikate sind vom Stammzertifikat Root-CA signiert. Int-CA-A und Root-CA sind an den virtuellen SSL-Server gebunden. Im Standardfall (ClientAuthuseBoundCachain deaktiviert) werden sowohl clientcert1 als auch clientcert2 akzeptiert. Wenn ClientAuthuseBoundCachain jedoch aktiviert ist, akzeptiert die Citrix ADC-Appliance nur clientcert1.
Ermöglichen Sie eine strengere Kontrolle der Clientzertifikatvalidierung mithilfe der CLI
Geben Sie an der Eingabeaufforderung Folgendes ein:
set ssl profile <name> -ClientAuthUseBoundCAChain Enabled
<!--NeedCopy-->
Ermöglichen Sie eine strengere Kontrolle der Validierung von Clientzertifikaten mithilfe der GUI
- Navigieren Sie zu System > Profile, wählen Sie die Registerkarte SSL-Profile und erstellen Sie ein SSL-Profil oder wählen Sie ein vorhandenes Profil aus.
- Wählen Sie Client-Authentifizierung mit gebundener Zertifizierungsstellenketteaktivieren aus.