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-Dokumentation https://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.
Führen Sie die folgenden Schritte im Azure-Portal 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 unter https://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 <IP address>
<!--NeedCopy-->
Beispiel:
add dns nameserver 192.0.2.150
<!--NeedCopy-->
So konfigurieren Sie einen DNS-Server mit der GUI
-
Navigieren Sie zu Traffic Management > DNS > Nameserver . Klicken Sie auf Hinzufü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 auf Erstellen.
Hinzufügen und Binden eines Stammzertifikats
Laden Sie die Stammzertifikate des von Azure Key Vault https://<vault_name>.vault.azure.net
und Azure Active Directory (AAD) vorgestellten Zertifikats herunter https://login.microsoftonline.com und 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-Zertifikatsgruppe ns_callout_certs
.
So fügen Sie mithilfe der CLI ein Stammzertifikat hinzu
Geben Sie in der Befehlszeile Folgendes ein:
add ssl certkey <certkeyname> -cert <certname>
bind ssl caCertGroup <caCertGroupName> <certkeyName>
<!--NeedCopy-->
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
<!--NeedCopy-->
So fügen Sie mithilfe der GUI ein Stammzertifikat hinzu
-
Navigieren Sie zu Traffic Management > SSL > Zertifikate > CA-Zertifikate .
- Geben Sie Werte für die folgenden Parameter ein:
- Name des Zertifikatsschlüssel-Paars
- Name der Zertifikatsdatei
-
Klicken Sie auf Installieren.
-
Navigieren Sie zu Verkehrsmanagement > SSL > CA Certificates Group.
-
Wählen Sie ns_callout_certs aus und klicken Sie auf Bindungen anzeigen.
-
Klicken Sie auf Bind.
-
Wählen Sie das zuvor erstellte CA Zertifikat aus und klicken Sie auf Auswählen
- Klicken Sie auf Binden, und klicken Sie dann auf 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.
So konfigurieren Sie eine Azure-Anwendung mithilfe der CLI
Verwenden Sie den Parameter VaultResource im add azure application
Befehl, um die Domäne der Ressourcengruppe abzurufen, bevor der Anwendung das Zugriffstoken gewährt wird. Dieser Parameter wird hinzugefügt, da der Domainname für verschiedene Regionen unterschiedlich sein kann. Zum Beispiel könnte die Domäne vault.azure.net
oder sein vault.usgov.net
.
Geben Sie in der Befehlszeile Folgendes ein:
add azure application <name> -clientID <string> -clientSecret -tenantID <string> -vaultResource <string> [-tokenEndpoint <URL>]
show azure application
<!--NeedCopy-->
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
<!--NeedCopy-->
So konfigurieren Sie eine Azure-Anwendung mithilfe der GUI
-
Navigieren Sie zu Traffic Management > SSL > Azure > Anwendung.
-
Klicken Sie im Detailbereich auf Hinzufü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/<tenant id>
.
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 <name> -azureVaultName <string> -azureApplication
<string>
show azure keyvault
<!--NeedCopy-->
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
<!--NeedCopy-->
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.
Status | 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 zu Traffic 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 <hsmKeyName> [-hsmType <hsmType>] [-key <string> |
-serialNum <string>] {-password } [-keystore <string>]
<!--NeedCopy-->
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
<!--NeedCopy-->
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.
Status | 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 zu Traffic Management > SSL > HSM.
-
Geben Sie Werte für die folgenden Parameter ein.
- HSM-Schlüsselname — Name des Schlüssels.
- HSM-Typ — Typ des HSM.
- Schlüsselspeicher — Name des Schlüsselspeicherobjekts, 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 auf Hinzufü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 <certkeyName> (-cert <string> [-password]) -hsmKey <string>]
show ssl certkey
<!--NeedCopy-->
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
<!--NeedCopy-->
So fügen Sie ein Zertifikatsschlüsselpaar mithilfe der GUI hinzu
-
Navigieren Sie zu Traffic 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 auf Installieren.
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 <vServerName> -certkeyName <certificate-KeyPairName>
show ssl vserver <vServerName>
<!--NeedCopy-->
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
<!--NeedCopy-->
So binden Sie ein SSL-Zertifikatsschlüsselpaar mithilfe der GUI an einen virtuellen Server
-
Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server und öffnen Sie einen 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 unter Microsoft 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 <local0.debug> 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 <local0.debug> 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 <local0.debug> 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" <!--NeedCopy-->