Unterstützung für Azure Key Vault
Die NetScaler Appliance lässt sich in externe HSMs (SafeNet und Thales) für on-premises Bereitstellungen integrieren. Bei Cloud-Bereitstellungen lässt sich die ADC-Appliance in Azure Key Vault integrieren. Die Appliance speichert ihre privaten Schlüssel im Schlüsseltresor, um die Verwaltung und Sicherheit des privaten Schlüssels in der Public Cloud-Domäne zu vereinfachen. Sie müssen keine Schlüssel mehr an verschiedenen Orten für ADC-Appliances speichern und verwalten, die in mehreren Rechenzentren und Cloud-Anbietern bereitgestellt werden.
Die Verwendung von ADC mit der Preisstufe Azure Key Vault Premium, die HSM-gestützte Schlüssel bereitstellte, bietet FIPS 140-2 Level 2-Konformität.
Azure Key Vault ist ein Standardangebot von Microsoft. Weitere Informationen zu Azure Key Vault finden Sie in der Microsoft Azure-Dokumentation.
Hinweis:
Die NetScaler-Integration mit Azure Key Vault wird mit dem TLS 1.3-Protokoll unterstützt.
Architektur im Überblick
Azure Key Vault ist ein Dienst zum sicheren Speichern von Geheimnissen in der Azure Cloud. Indem Sie Ihre Schlüssel im Azure Key Vault aufbewahren, verringern Sie die Wahrscheinlichkeit, dass Schlüssel gestohlen werden. Sobald der Schlüsseltresor eingerichtet ist, können Sie Ihre Schlüssel darin aufbewahren. Konfigurieren Sie virtuelle Server auf der ADC-Appliance für private Schlüsselvorgänge im Schlüsseltresor. Die ADC-Appliance greift für jeden SSL-Handshake auf den Schlüssel zu.
Das folgende Diagramm veranschaulicht den Vorgang zum Abrufen eines Zugriffstokens aus Azure Active Directory nach der Authentifizierung. Dieses Token wird mit REST-API-Aufrufen für Kryptooperationen mit privaten Schlüsseln verwendet.
Das folgende Diagramm zeigt einen typischen RSA-Handshake. Die Clientschlüsselungsnachricht (CKE), die mit dem öffentlichen Schlüssel verschlüsselt wird, wird mit dem im Schlüsselspeicher gespeicherten privaten Schlüssel entschlüsselt.
In einem ECDHE-Handshake wird die von der NetScaler Appliance gesendete Serverschlüsselaustauschnachricht (SKE) mithilfe des im Schlüsseltresor gespeicherten privaten Schlüssels signiert.
Voraussetzungen
Sie müssen ein Azure-Abonnement haben.
(Optional) Installieren Sie Azure CLI auf einem Linux-Computer. Anweisungen finden Sie in der Azure-Dokumentationhttps://docs.microsoft.com/en-us/cli/azure/install-azure-cli-apt?view=azure-cli-latest.
Schließen Sie die Konfiguration auf dem Azure-Portal ab, bevor Sie Entitäten auf der ADC Appliance
Konfigurieren der ADC Azure Key Vault-Integration
Führen Sie zuerst die Konfiguration im Azure-Portal durch, gefolgt von der Konfiguration auf der ADC-Appliance.
Fuhren您死folgenden Schritte im azure门户aus
Das folgende Flussdiagramm zeigt den übergeordneten Fluss für die Konfiguration, die für das Azure-Portal erforderlich ist.
- Erstellen Sie App und Service Principal in Azure Active Directory.
- Erstellen Sie einen Schlüsseltresor in einer Ressourcengruppe.
- Konfigurieren Sie die App und den Service Principal für Signierungs- und Entschlüsselungsvorgänge im Schlüsseltresor.
Erstellen Sie Schlüssel im Schlüsseltresor auf eine der folgenden Arten:
- Indem Sie eine Schlüsseldatei importieren.
- Durch Generieren eines Zertifikats.
Informationen zu den Befehlen zum Konfigurieren der vorangegangenen Schritte finden Sie in der Azure-Dokumentation unterhttps://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals.
Führen Sie die folgenden Schritte auf der ADC-Appliance aus
Das folgende Flussdiagramm zeigt den High-Level-Fluss für die Konfiguration, die auf der ADC-Appliance erforderlich ist.
- Konfigurieren Sie einen DNS-Server.
- Konfigurieren Sie Stammzertifikate zur Überprüfung der von Azure präsentierten Zertifikate.
- Erstellen Sie eine Azure-Anwendung.
- Erstellen Sie eine Azure Key Vault-Entität.
- Erstellen Sie einen HSM-Schlüssel.
- Erstellen Sie ein Zertifikatsschlüsselpaar.
- Binden Sie das Zertifikatsschlüsselpaar an einen virtuellen Server.
Konfigurieren Sie einen DNS-Server
Für die Namensauflösung des Key Vault-Hosts und des Azure Active Directory-Endpunkts ist ein DNS-Server erforderlich.
So konfigurieren Sie einen DNS-Server mit der CLI
Geben Sie in der Befehlszeile Folgendes ein:
add dns nameserver
Beispiel:
add dns nameserver 192.0.2.150
So konfigurieren Sie einen DNS-Server mit der GUI
Navigieren Sie zuTraffic Management > DNS > Nameserver. Klicken Sie aufHinzufügen.
- Geben Sie Werte für die folgenden Parameter ein:
- IP-Adresse — Die IP-Adresse eines externen Nameservers oder, falls der lokale Parameter festgelegt ist, die IP-Adresse eines lokalen DNS-Servers (LDNS).
- Protokoll — vom Nameserver verwendetes Protokoll. UDP_TCP ist nicht gültig, wenn der Nameserver ein virtueller DNS-Server ist, der auf der Appliance konfiguriert ist.
- Klicken Sie aufErstellen.
Hinzufügen und Binden eines Stammzertifikats
Laden Sie die Stammzertifikate des von Azure Key Vaulthttps://
und Azure Active Directory (AAD) vorgestellten Zertifikats herunterhttps://login.microsoftonline.comund laden Sie es auf die ADC Appliance. Diese Zertifikate sind erforderlich, um das von Azure Key Vault und AAD vorgelegte Zertifikat zu validieren. Binden Sie ein oder mehrere Zertifikate an die CA-Zertifikatsgruppens_callout_certs
.
So fügen Sie mithilfe der CLI ein Stammzertifikat hinzu
Geben Sie in der Befehlszeile Folgendes ein:
add ssl certkey -cert bind ssl caCertGroup
Beispiel:Im folgenden Beispiel ist das von Azure Key Vault und AAD präsentierte Stammzertifikat dasselbe.
add ssl certKey rootcert -cert RootCyberTrustRoot.crt bind ssl cacertGroup ns_callout_certs rootcert
So fügen Sie mithilfe der GUI ein Stammzertifikat hinzu
Navigieren Sie zuTraffic Management > SSL > Zertifikate > CA-Zertifikate.
- Geben Sie Werte für die folgenden Parameter ein:
- Name des Zertifikatsschlüssel-Paars
- Name der Zertifikatsdatei
Klicken Sie aufInstallieren.
Navigieren Sie zuVerkehrsmanagement > SSL > CA Certificates Group.
Wählen Siens_callout_certsaus und klicken Sie aufBindungen anzeigen.
Klicken Sie aufBind.
Wählen Sie das zuvor erstellte CA Zertifikat aus und klicken Sie aufAuswählen
- Klicken Sie aufBinden,和klicken您丹Schließen.
Konfigurieren einer Azure-Anwendung
Die Azure-Anwendungsentität enthält die erforderlichen Anmeldeinformationen, um sich bei Azure Active Directory zu authentifizieren und das Zugriffstoken abzurufen. Das heißt, um Autorisierungszugriff auf Key Vault-Ressourcen und APIs zu erhalten, fügen Sie die Azure Application ID, das geheime (Kennwort) und die Mandanten-ID auf der ADC-Appliance hinzu.
Wenn Sie die Azure Application Entity mithilfe der CLI konfigurieren, müssen Sie das Kennwort eingeben. Wenn Sie die GUI verwenden, enthält die Azure-Anwendungseinheit die erforderlichen Anmeldeinformationen, um sich bei Azure Active Directory zu authentifizieren und das Zugriffstoken abzurufen.
所以konfigurieren您一张Azure-Anwendung mithilfeder CLI
Ab Version 13.0-61.x wird demadd azure application
Befehl ein Parameter, VaultResource, hinzugefügt, um die Domäne der Ressourcengruppe abzurufen, bevor das Zugriffstoken der Anwendung gewährt wird. Dieser Parameter wird hinzugefügt, da der Domainname für verschiedene Regionen unterschiedlich sein kann. Zum Beispiel könnte die Domänevault.azure.net
oder seinvault.usgov.net
.
Geben Sie in der Befehlszeile Folgendes ein:
add azure application -clientID -clientSecret -tenantID -vaultResource [-tokenEndpoint ] show azure application
Beispiel:
add azure application app10 -clientiD 12345t23aaa5 -clientsecret csHzOoEzmuY= -vaultResource example.vault.azure.net -tenantID 33583ee9ca5b Done > sh azure application app10 1) Name: app10 ClientID: 12345t23aaa5 TokenEndpoint: "https://login.microsoftonline.com/33583ee9ca5b/" TenantID: 33583ee9ca5b VaultResource: example.vault.azure.net Done
所以konfigurieren您一张Azure-Anwendung mithilfeder GUI
Navigieren Sie zuTraffic Management > SSL > Azure > Anwendung.
Klicken Sie im Detailbereich aufHinzufügen.
Geben Sie Werte für die folgenden Parameter ein:
- Name — Name für das Anwendungsobjekt auf der NetScaler Appliance.
- Client-ID — Anwendungs-ID, die generiert wird, wenn eine Anwendung in Azure Active Directory mithilfe der Azure CLI oder des Azure-Portals (GUI) erstellt wird.
- Clientgeheimnis — Kennwort für die in Azure Active Directory konfigurierte Anwendung. Das Kennwort wird in der Azure CLI angegeben oder im Azure-Portal (GUI) generiert.
- Mandanten-ID — ID des Verzeichnisses in Azure Active Directory, in dem die Anwendung erstellt wurde.
- Tresorressource — Tresorresorressource, für die Zugriffstoken gewährt wird Beispiel
vault.azure.net
. - Token-Endpunkt — URL, von der aus das Zugriffstoken abgerufen werden kann. Wenn der Token-Endpunkt nicht angegeben ist, ist der Standardwert
https://login.microsoftonline.com/
.
Konfigurieren von Azure Key Vault
Erstellen Sie ein Azure Key Vault-Objekt auf der ADC-Appliance.
So konfigurieren Sie Azure Key Vault mithilfe der CLI
Geben Sie in der Befehlszeile Folgendes ein:
add azure keyVault -azureVaultName -azureApplication show azure keyvault
Beispiel:
add azure keyvault kv1 -azureapplication app10 -azurevaultName pctest.vault.azure.net > sh azure keyVault 1) Name: kv1 AzureVaultName: pctest.vault.azure.net AzureApplication: app10 State: "Access token obtained" Done
In der folgenden Tabelle sind die verschiedenen Werte aufgeführt, die der Status des Azure Key Vault annehmen kann, zusammen mit einer kurzen Beschreibung der einzelnen Status.
State | Beschreibung |
---|---|
Created |
Anfangszustand des Key Vault-Objekts. Die Authentifizierung wurde nicht versucht. |
Could not reach token end point |
Weist auf einen der folgenden Punkte hin: DNS-Server nicht konfiguriert, Ausstellerzertifikat, das nicht an eine CA-Zertifikatsgruppe gebunden ist, oder Netzwerkprobleme. |
Authorization failed |
Falsche Anmeldeinformationen für die Anwendung. |
Token parse error |
Die Antwort von Azure Active Directory hat nicht das erwartete Format. |
Access token obtained |
Erfolgreich von Azure Active Directory authentifiziert. |
So konfigurieren Sie den Azure Key Vault mithilfe der GUI
Navigieren Sie zuTraffic Management > SSL > Azure > Schlüsseltresor.
Geben Sie Werte für die folgenden Parameter ein:
- Name — Name für den Schlüsseltresor.
- Azure Key Vault Name — Name des Schlüsseltresors, der in Azure Cloud mithilfe der Azure CLI oder des Azure-Portals (GUI) mit Domänennamen konfiguriert wurde.
- Azure Application Name — Name des Azure Application-Objekts, das auf der ADC Appliance erstellt wurde. Das Azure Application-Objekt mit diesem Namen wird für die Authentifizierung mit Azure Active Directory verwendet.
HSM-Schlüssel hinzufügen
Das Speichern Ihres privaten Schlüssels im HSM gewährleistet die Konformität mit FIPS 140-2 Level 2.
So fügen Sie einen HSM-Schlüssel mit der CLI hinzu
Geben Sie in der Befehlszeile Folgendes ein:
add ssl hsmKey [-hsmType ] [-key | -serialNum ] {-password } [-keystore ]
Beispiel:
add ssl hsmKey h1 -keystore kv1 -key san15key -hsmType KEYVAULT > sh ssl hsmKey h1 HSM Key Name: h1 Type: KEYVAULT Key: san15key Key store: kv1 State: “Created” Done
In der folgenden Tabelle sind die verschiedenen Werte aufgeführt, die der Status eines HSM-Schlüssels annehmen kann, zusammen mit einer kurzen Beschreibung der einzelnen Status.
State | Beschreibung |
---|---|
Created | Der HSM-Schlüssel wird auf der ADC-Appliance hinzugefügt. Eine Schlüsseloperation wird noch nicht versucht. |
Zugriffstoken nicht verfügbar | Zugriffstoken ist nicht verfügbar, als eine Schlüsseloperation versucht wurde. |
Nicht autorisiert | Die konfigurierte Azure-Anwendung ist nicht berechtigt, den Schlüsselvorgang auszuführen. |
Existiert nicht | Der Schlüssel ist im Azure Key Vault nicht vorhanden. |
Unerreichbar | Der Key Vault-Host ist im Netzwerk nicht erreichbar. |
Markiert | Die HSM-Taste ist auf der ADC-Appliance aufgrund von Schwellenwertfehlern während des Schlüsselbetriebs mit DOWN gekennzeichnet. |
Wichtige Vorgänge waren erfolgreich | Antwort auf Erfolg vom Schlüsseltresor für den Schlüsselbetrieb erhalten. |
Wichtige Operationen sind fehlgeschlagen | Fehlerantwort von Key Vault für den Schlüsselbetrieb erhalten. |
Tastenbetrieb gedrosselt | Die Anforderung der Schlüsseloperation wird durch den Schlüsseltresor gedrosselt. |
So fügen Sie einen HSM-Schlüssel mithilfe der GUI hinzu
Navigieren Sie zuTraffic Management > SSL > HSM.
Geben Sie Werte für die folgenden Parameter ein.
- HSM-Schlüsselname — Name des Schlüssels.
- HSM-Typ — Typ des HSM.
- des Schlusselspeicherobje Schlusselspeicher -名字kts, das HSM darstellt, in dem der Schlüssel gespeichert ist. Beispiel: Name des Key Vault-Objekts oder Azure Key Vault-Authentifizierungsobjekts. Gilt nur für den
KEYVAULT
Typ HSM.
Klicken Sie aufHinzufügen.
Fügen Sie ein Zertifikatschlüsselpaar hinzu
Fügen Sie ein Zertifikatsschlüsselpaar mit dem zuvor erstellten HSM-Schlüssel hinzu.
So fügen Sie ein Zertifikatsschlüsselpaar mit der CLI hinzu
Geben Sie in der Befehlszeile Folgendes ein:
add ssl certKey (-cert [-password]) -hsmKey ] show ssl certkey
Beispiel:
add ssl certKey serverrsa_2048 -cert /nsconfig/ssl/san_certs/san15.pem -hsmKey h1 > sh ssl certkey serverrsa_2048 Name: serverrsa_2048 Status: Valid, Days to expiration:9483 Version: 3 Serial Number: F5CFF9EF1E246022 Signature Algorithm: sha256WithRSAEncryption Issuer: C=in,O=citrix,CN=ca Validity Not Before: Mar 20 05:42:57 2015 GMT Not After : Mar 12 05:42:57 2045 GMT Certificate Type: "Server Certificate" Subject: C=in,O=citrix Public Key Algorithm: rsaEncryption Public Key size: 2048 Ocsp Response Status: NONE Done
So fügen Sie ein Zertifikatsschlüsselpaar mithilfe der GUI hinzu
Navigieren Sie zuTraffic Management > SSL > Zertifikat (HSM) installieren.
Geben Sie Werte für die folgenden Parameter ein:
- Name des Zertifikatschlüssel-Paars
- Name der Zertifikatsdatei
- HSM-Schlüssel
Klicken Sie aufInstallieren.
Binden Sie das Zertifikatsschlüsselpaar an einen virtuellen Server
Das für die Verarbeitung von SSL-Transaktionen verwendete Zertifikat muss an den virtuellen Server gebunden sein, der die SSL-Daten empfängt.
So binden Sie das SSL-Zertifikatsschlüsselpaar mithilfe der CLI an einen virtuellen Server
Geben Sie in der Befehlszeile Folgendes ein:
bind ssl vserver -certkeyName show ssl vserver
Beispiel:
bind ssl vserver v1 -certkeyName serverrsa_2048 sh ssl vserver v1 Advanced SSL configuration for VServer v1: DH: DISABLED DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0 Session Reuse: ENABLED Timeout: 120 seconds Cipher Redirect: DISABLED ClearText Port: 0 Client Auth: DISABLED SSL Redirect: DISABLED Non FIPS Ciphers: DISABLED SNI: DISABLED OCSP Stapling: DISABLED HSTS: DISABLED HSTS IncludeSubDomains: NO HSTS Max-Age: 0 HSTS Preload: NO SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED Push Encryption Trigger: Always Send Close-Notify: YES Strict Sig-Digest Check: DISABLED Zero RTT Early Data: DISABLED DHE Key Exchange With PSK: NO Tickets Per Authentication Context: 1 ECC Curve: P_256, P_384, P_224, P_521 1) CertKey Name: serverrsa_2048 Server Certificate 1) Cipher Name: DEFAULT Description: Default cipher list with encryption strength >= 128bit Done
So binden Sie ein SSL-Zertifikatsschlüsselpaar mithilfe der GUI an einen virtuellen Server
Navigieren Sie zuTraffic Management > Load Balancing > Virtuelle Server和offnen您杯virtuellen SSL-Server. Klicken Sie in den Abschnitt Zertifikat .
Klicken Sie auf den Pfeil, um das Zertifikatsschlüsselpaar auszuwählen.
Wählen Sie das Zertifikatsschlüsselpaar aus der Liste aus.
Binden Sie das Zertifikatsschlüsselpaar an den virtuellen Server.
Einschränkungen
- Die Anzahl der gleichzeitigen Aufrufe des Azure Key Vault für wichtige Vorgänge ist begrenzt. Die Leistung der ADC-Appliance hängt von den Grenzwerten für Key Vault ab. Weitere Informationen finden Sie unterMicrosoft Azure Key Vault-Dokumentation.
- EC-Schlüssel werden nicht unterstützt.
- EDT- und DTLS-Protokolle werden nicht unterstützt.
- ADC-Geräte mit Intel Coleto SSL-Chips werden nicht unterstützt.
- Clustering und Adminpartitionen werden nicht unterstützt.
- Sie können die Azure Application Entity, das Azure Key Vault-Objekt und das HSM-Zertifikatsschlüsselpaar nicht aktualisieren, nachdem Sie sie der ADC-Appliance hinzugefügt haben.
- Ein Zertifikatspaket mit HSM-Schlüsseln wird nicht unterstützt.
- Ein Fehler tritt nicht auf, wenn der HSM-Schlüssel und das Zertifikat nicht übereinstimmen. Stellen Sie beim Hinzufügen eines Zertifikatsschlüsselpaars sicher, dass der HSM-Schlüssel und das Zertifikat übereinstimmen.
- Sie können keinen HSM-Schlüssel an einen virtuellen DTLS-Server binden.
- Sie können OCSP-Anfragen nicht mit einem Zertifikatsschlüsselpaar signieren, das mit einem HSM-Schlüssel erstellt wurde.
- Sie können kein Zertifikatsschlüsselpaar an einen SSL-Dienst binden, wenn das Zertifikatsschlüsselpaar mit einem HSM-Schlüssel erstellt wird.
Häufig gestellte Fragen
Werden bei der Integration in Azure Key Vault private Schlüssel im Speicher der ADC Appliance gespeichert?
Nein, private Schlüssel werden nicht im Speicher der ADC Appliance gespeichert. Für jede SSL-Transaktion sendet die Appliance eine Anfrage an Key Vault.
Ist die Integration FIPS 140-2 Level 2 konform?
Ja, die integrierte Lösung bietet FIPS 140-2 Level 2-Unterstützung.
Welche Schlüsseltypen werden unterstützt?
Es werden nur RSA-Schlüsseltypen unterstützt.
Welche Schlüsselgrößen werden unterstützt?
1024-Bit-, 2048-Bit- und 4096-Bit-RSA-Schlüssel werden unterstützt.
Welche Chiffern werden unterstützt?
Alle auf der ADC-Appliance unterstützten Verschlüsselungen, einschließlich TLSv1.3-Verschlüsselungen mit ECDHE und SHA256, werden unterstützt.
Werden Transaktionen protokolliert?
Die ADC-Appliance protokolliert jede Transaktion, die sie mit dem Schlüsseltresor tätigt. Details wie Uhrzeit, Tresor-IP-Adresse, Port, Erfolg oder Misserfolg der Verbindung und Fehler werden protokolliert. Im Folgenden finden Sie eine SSL-Protokollausgabe.
Apr 9 16:35:30
10.102.57.30 04/09/2019:16:35:30 GMT 0-PPE-0 : default SSLLOG SSL_HANDSHAKE_SUCCESS 896 0 : Backend SPCBId 30894 - ServerIP 104.211.224.186 - ServerPort 443 - ProtocolVersion TLSv1.2 - CipherSuite "ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Non-Export 256-bit" - Session New - SERVER_AUTHENTICATED -SerialNumber "200005A75B04365827852D630000000005A75B" - SignatureAlgorithm "sha256WithRSAEncryption" - ValidFrom "Mar 17 03:28:42 2019 GMT" - ValidTo "Mar 17 03:28:42 2021 GMT" - HandshakeTime 40 ms Apr 9 16:35:30 10.102.57.30 04/09/2019:16:35:30 GMT 0-PPE-0 : default SSLLOG SSL_HANDSHAKE_ISSUERNAME 897 0 : SPCBId 30894 - IssuerName " C=US,ST=Washington,L=Redmond,O=Microsoft Corporation,OU=Microsoft IT,CN=Microsoft IT TLS CA 2" Apr 9 16:35:30 10.102.57.30 04/09/2019:16:35:30 GMT 0-PPE-0 : default SSLLOG SSL_HANDSHAKE_SUBJECTNAME 898 0 : SPCBId 30894 - SubjectName " CN=vault.azure.net"