Citrix ADC

Unterstützung für Azure Key Vault

Die Citrix ADC Appliance lässt sich mit externen HSMs (SafeNet und Thales) für lokale Bereitstellungen integrieren. Bei Cloud-Bereitstellungen ist die ADC-Appliance in Azure Key Vault integriert. Die Appliance speichert ihre privaten Schlüssel im Key Vault, um die Verwaltung und Sicherheit des privaten Schlüssels in der Public Cloud-Domäne zu vereinfachen. Sie müssen Schlüssel nicht mehr an verschiedenen Standorten für ADC-Appliances speichern und verwalten, die in mehreren Rechenzentren und Cloud-Anbietern bereitgestellt werden.

Die Verwendung von ADC mit der Azure Key Vault Premium-Preisstufe, die HSM-gestützte Schlüssel bereitstellte, bietet FIPS 140-2 Level 2 Compliance.

Azure Key Vault ist ein Standardangebot von Microsoft. Weitere Informationen zu Azure Key Vault finden Sie in der Microsoft Azure-Dokumentation.

Hinweis: Die Citrix ADC Integration in 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. Durch das Speichern Ihrer Schlüssel im Azure Key Vault verringern Sie die Wahrscheinlichkeit, dass Schlüssel gestohlen werden. Sobald der Schlüsselspeicher eingerichtet ist, können Sie Ihre Schlüssel darin speichern. Konfigurieren Sie virtuelle Server auf der ADC-Appliance für private Schlüsselvorgänge im Schlüsselspeicher. Die ADC-Appliance greift auf den Schlüssel für jeden SSL-Handshake zu.

Das folgende Diagramm veranschaulicht den Prozess zum Abrufen eines Zugriffstoken aus Azure Active Directory nach der Authentifizierung. Dieses Token wird mit REST-API-Aufrufen für Kryptooperationen mit privaten Schlüsseln verwendet.

Zugriffstoken abrufen

Das folgende Diagramm zeigt einen typischen RSA-Handshake. Die Client Key Exchange (CKE) -Nachricht, die mit dem öffentlichen Schlüssel verschlüsselt wird, wird mit dem privaten Schlüssel entschlüsselt, der im Schlüsselspeicher gespeichert ist.

Key Vault Handshake

In einem ECDHE-Handshake wird die SKE-Nachricht (Server Key Exchange), die von der Citrix ADC Appliance gesendet wird, mit dem im Schlüsselspeicher gespeicherten privaten Schlüssel signiert.

Voraussetzungen

  1. Sie müssen über ein Azure-Abonnement verfügen.

  2. (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.

  3. Schließen Sie die Konfiguration im Azure-Portal ab, bevor Sie Entitäten auf der ADC-Appliance konfigurieren.

Konfigurieren der ADC Azure Key Vault-Integration

Führen Sie zunächst 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 High-Level-Fluss für die Konfiguration, die im Azure-Portal erforderlich ist.

Schritte im Azure-Portal

  1. Erstellen Sie App- und Dienstprinzipal in Azure Active Directory.
  2. Erstellen Sie Key Vault in einer Ressourcengruppe.
  3. Konfigurieren Sie die App und den Dienstprinzipal, um Signatur- und Entschlüsselungsvorgänge im Schlüsselspeicher auszuführen.
  4. Erstellen Sie Schlüssel in Key Vault mit einer der folgenden Möglichkeiten:

    1. Durch Importieren einer Schlüsseldatei.
    2. Durch die Generierung eines Zertifikats.

Informationen zu den Befehlen zum Konfigurieren der vorherigen 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.

Schritte auf der ADC-Appliance

  1. Konfigurieren Sie einen DNS-Server.
  2. Konfigurieren Sie Stammzertifikate, um die von Azure bereitgestellten Zertifikate zu überprüfen.
  3. Erstellen Sie eine Azure-Anwendung.
  4. Erstellen Sie Azure Key Vault-Entität.
  5. Erstellen Sie HSM-Schlüssel.
  6. Erstellen Sie ein Zertifikatschlüsselpaar.
  7. Binden Sie das Zertifikatschlüsselpaar an einen virtuellen Server.

Konfigurieren eines DNS-Servers

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 an der Eingabeaufforderung Folgendes ein:

add dns nameserver <IP address>

Beispiel:

add dns nameserver 192.0.2.150

So konfigurieren Sie einen DNS-Server mit der GUI

  1. Navigieren Sie zu Verkehrsverwaltung > DNS > Nameserver. Klicken Sie auf Hinzufügen.

    DNS-Nameserver hinzufügen

  2. Geben Sie Werte für die folgenden Parameter ein:
    • IP-Adresse - IP-Adresse eines externen Nameservers oder, wenn der Parameter Local festgelegt ist, IP-Adresse eines lokalen DNS-Servers (LDNS).
    • Protokoll - Protokoll, das vom Nameserver verwendet wird. UDP_TCP ist ungültig, wenn der Namenserver ein virtueller DNS-Server ist, der auf der Appliance konfiguriert ist.

    DNS-Nameserver-Parameter

  3. Klicken Sie auf Erstellen.

Hinzufügen und Binden eines Stammzertifikats

Laden Sie die Stammzertifikate des Zertifikats herunter, das von Azure Key Vaulthttps://<vault_name>.vault.azure.net und Azure Active Directory (AAD) vorgelegt wird,https://login.microsoftonline.com und laden Sie es auf der ADC-Appliance. Diese Zertifikate sind erforderlich, um das von Azure Key Vault und AAD vorgestellte Zertifikat zu validieren. Binden Sie ein oder mehrere Zertifikate an die Zertifizierungsstellenzertifikatsgruppens_callout_certs.

So fügen Sie ein Stammzertifikat mit der CLI hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add ssl certkey <certkeyname> -cert <certname>
bind ssl caCertGroup <caCertGroupName> <certkeyName>

Beispiel: Im folgenden Beispiel ist das Stammzertifikat von Azure Key Vault und AAD identisch.

add ssl certKey rootcert -cert RootCyberTrustRoot.crt
bind ssl cacertGroup ns_callout_certs  rootcert

So fügen Sie mit der GUI ein Stammzertifikat hinzu

  1. Navigieren Sie zu Traffic Management > SSL > Zertifikate > CA-Zertifikate.

    Zertifizierungsstellenzertifikat installieren

  2. Geben Sie Werte für die folgenden Parameter ein:
    • Name des Zertifikat-Schlüsselpaares
    • Zertifikatsdateiname

    CA-Zertifikatsparameter

  3. Klicken Sie auf Installieren.

  4. Navigieren Sie zu Traffic Management > SSL > CA Certificate Group.

  5. Wählen Sie ns_callout_certs aus, und klicken Sie auf Bindungen anzeigen .

    Bindungen anzeigen

  6. Klicken Sie auf Bind.

  7. Wählen Sie das zuvor erstellte Zertifizierungsstellenzertifikat aus, und klicken Sie auf Auswählen.

  8. Klicken Sie auf Binden, und klicken Sie dann auf Schließen.

Konfigurieren einer Azure-Anwendung

Die Azure-Anwendungsentität enthält die Anmeldeinformationen, die erforderlich sind, um sich bei Azure Active Directory zu authentifizieren und das Zugriffstoken zu erhalten. Das heißt, um Autorisierungszugriff auf Key Vault-Ressourcen und-APIs zu erhalten, fügen Sie die Azure-Anwendungs-ID, das geheime Kennwort (Kennwort) und die Mandanten-ID auf der ADC-Appliance hinzu.
Wenn Sie die Azure-Anwendungsentität mit der CLI konfigurieren, müssen Sie das Kennwort eingeben. Wenn Sie die GUI verwenden, enthält die Azure-Anwendungsentität die Anmeldeinformationen, die erforderlich sind, um sich bei Azure Active Directory zu authentifizieren und das Zugriffstoken zu erhalten.

So konfigurieren Sie eine Azure-Anwendung mit der CLI

Ab Release 13.0-61.x wird demadd azure application Befehl ein Parameter VaultResource hinzugefügt, um die Domäne der Ressourcengruppe abzurufen, bevor der Anwendung das Zugriffstoken gewährt wird. Dieser Parameter wird hinzugefügt, da der Domänenname für verschiedene Regionen unterschiedlich sein kann. Beispielsweise könnte die Domänevault.azure.net oder seinvault.usgov.net.

Geben Sie an der Eingabeaufforderung Folgendes ein:

add azure application <name> -clientID <string> -clientSecret -tenantID <string> -vaultResource <string> [-tokenEndpoint <URL>]
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

So konfigurieren Sie eine Azure-Anwendung mit der GUI

  1. Navigieren Sie zu Traffic Management > SSL > Azure > Anwendung.

    Azure-Anwendungsnavigation

  2. Klicken Sie im Detailbereich auf Hinzufügen.

  3. Geben Sie Werte für die folgenden Parameter ein:

    • Name - Name des Anwendungsobjekts auf der Citrix ADC 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.
    • Vault-Ressource - Vault-Ressource, für die Zugriffstoken gewährt wird. Beispielvault.azure.net.
    • Token-Endpunkt - URL, von der aus das Zugriffstoken abgerufen werden kann. Wenn der Token-Endpunkt nicht angegeben ist, ist der Standardwerthttps://login.microsoftonline.com/<tenant id>.

    Azure-Anwendungsparameter

Konfigurieren von Azure Key Vault

Erstellen Sie ein Azure Key Vault-Objekt auf der ADC-Appliance.

So konfigurieren Sie Azure Key Vault mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

add azure keyVault <name> -azureVaultName <string> -azureApplication
       <string>
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-Schlüsseltresors zusammen mit einer kurzen Beschreibung der einzelnen Status annehmen kann.

Status Beschreibung
Erstellt Anfangszustand des Key Vault-Objekts. Authentifizierung wurde nicht versucht.
Token-Endpunkt konnte nicht erreicht werden Gibt einen der folgenden Punkte an: DNS-Server nicht konfiguriert, Ausstellerzertifikat, das nicht an eine Zertifizierungsstellenzergruppe gebunden ist, oder Netzwerkprobleme.
Autorisierung fehlgeschlagen Falsche Anmeldeinformationen für die Anwendung.
Token-Parse-Fehler Antwort von Azure Active Directory ist nicht im erwarteten Format.
Zugriffstoken erhalten Erfolgreich von Azure Active Directory authentifiziert.

So konfigurieren Sie Azure Key Vault über die GUI

  1. Navigieren Sie zu Traffic Management > SSL > Azure > Key Vault.

    Azure Key Vault-Navigation

  2. Geben Sie Werte für die folgenden Parameter ein:

    • Name - Name für den Key Tresor.
    • Azure Key Vault-Name: Name des Schlüsseltresors, der in der Azure-Cloud mithilfe der Azure-CLI oder der Azure-Portal (GUI) mit Domänennamen konfiguriert wurde.
    • Azure-Anwendungsname - Name des Azure-Anwendungsobjekts, das auf der ADC-Appliance erstellt wurde. Das Azure-Anwendungsobjekt mit diesem Namen wird für die Authentifizierung mit Azure Active Directory verwendet.

    Azure-Schlüssel-Vault-Parameter

HSM-Schlüssel hinzufügen

Das Speichern Ihres privaten Schlüssels im HSM bietet FIPS 140-2 Level 2 Compliance.

So fügen Sie einen HSM-Schlüssel mit der CLI hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add ssl hsmKey <hsmKeyName> [-hsmType <hsmType>] [-key <string> |
       -serialNum <string>] {-password } [-keystore <string>]

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

Die folgende Tabelle listet die verschiedenen Werte auf, die der Status eines HSM-Schlüssels annehmen kann, zusammen mit einer kurzen Beschreibung zu jedem Status.

Status Beschreibung
Erstellt Der HSM-Schlüssel wird auf der ADC-Appliance hinzugefügt. Ein Schlüsselvorgang wird noch nicht versucht.
Zugriffstoken nicht verfügbar Zugriffstoken nicht verfügbar, wenn der Schlüsselvorgang versucht wurde.
Nicht autorisiert Konfigurierte Azure-Anwendung verfügt nicht über die Berechtigung zum Ausführen des Schlüsselvorgangs.
Ist nicht vorhanden Der Schlüssel ist im Azure Key Vault nicht vorhanden.
Unerreichbar Der Key Vault-Host ist im Netzwerk nicht erreichbar.
Markiert nach unten Der HSM-Schlüssel wird auf der ADC-Appliance aufgrund von Schwellenfehlern während des Schlüsselbetriebs mit DOWN gekennzeichnet.
Schlüsseloperationen erfolgreich Erfolgsantwort, die vom Schlüsselspeicher für den Schlüsselvorgang empfangen wurde.
Schlüsselvorgänge fehlgeschlagen Fehlerantwort, die von Key Vault für den Schlüsselvorgang empfangen wurde.
Tastenbedienung gedrosselt Die Schlüsseloperationsanforderung wird vom Schlüsselspeicher gedrosselt.

So fügen Sie einen HSM-Schlüssel mit der GUI hinzu

  1. Navigieren Sie zu Traffic Management > SSL > HSM.

    HSM-Schlüssel hinzufügen

  2. 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 des Azure Key Vault-Authentifizierungsobjekts. Gilt nur für denKEYVAULT Typ HSM.

    HSM Schlüsselparameter

  3. Klicken Sie auf Hinzufügen

Hinzufügen eines Zertifikatschlüsselpaars

Fügen Sie ein Zertifikatschlüsselpaar mit dem zuvor erstellten HSM-Schlüssel hinzu.

So fügen Sie ein Zertifikatschlüsselpaar mit der CLI hinzu

Geben Sie an der Eingabeaufforderung Folgendes ein:

add ssl certKey <certkeyName> (-cert <string> [-password]) -hsmKey <string>]
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 Zertifikatschlüsselpaar mit der GUI hinzu

  1. Navigieren Sie zu Traffic Management > SSL > Zertifikat installieren (HSM).

    Zertifikatschlüsselpaar hinzufügen

  2. Geben Sie Werte für die folgenden Parameter ein:

    • Name des Zertifikat-Schlüsselpaares
    • Zertifikatsdateiname
    • HSM Schlüssel

    Parameter des Zertifikat-Schlüsselpaares

  3. Klicken Sie auf Installieren.

Binden Sie das Zertifikatschlü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-Zertifikatschlüsselpaar mit der CLI an einen virtuellen Server

Geben Sie an der Eingabeaufforderung Folgendes ein:

bind ssl vserver <vServerName> -certkeyName <certificate-KeyPairName>
show ssl vserver <vServerName>

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-Zertifikatschlüsselpaar mit der GUI an einen virtuellen Server

  1. Navigieren Sie zu Verkehrsverwaltung > Lastenausgleich > Virtuelle Server, und öffnen Sie einen virtuellen SSL-Server. Klicken Sie in den Abschnitt Zertifikat.

    Serverzertifikat

  2. Klicken Sie auf den Pfeil, um das Zertifikatschlüsselpaar auszuwählen.

    Klicken Sie auf den Pfeil

  3. Wählen Sie das Zertifikatschlüsselpaar aus der Liste aus.

    Zertifikatschlüsselpaar auswählen

  4. Binden Sie das Zertifikatschlüsselpaar an den virtuellen Server.

    Zertifikat an virtuellen Server binden

Einschränkungen

  • Die Anzahl der gleichzeitigen Anrufe an den Azure Key Vault für Schlüsselvorgänge ist begrenzt. Die Leistung der ADC-Appliance hängt von den Grenzwerten für Key Vault ab. Weitere Informationen, siehe Microsoft Azure Key Vault-Dokumentation.
  • EC-Schlüssel werden nicht unterstützt.
  • EDT- und DTLS-Protokolle werden nicht unterstützt.
  • ADC-Appliances mit Intel Coleto SSL-Chips werden nicht unterstützt.
  • Clustering und Adminpartitionen werden nicht unterstützt.
  • Sie können die Azure-Anwendungsentität, das Azure Key Vault-Objekt und das HSM-Zertifikatschlüsselpaar nicht aktualisieren, nachdem Sie sie der ADC-Appliance hinzugefügt haben.

Häufig gestellte Fragen

Werden private Schlüssel, wenn sie in Azure Key Vault integriert sind, im Speicher der ADC-Appliance gespeichert?

Nein, private Schlüssel werden nicht im ADC-Appliance-Speicher gespeichert. Für jede SSL-Transaktion sendet die Appliance eine Anforderung an Key Vault.

Ist die Integration FIPS 140-2 Level 2 Beschwerde?

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 Chiffre werden unterstützt?

Alle auf der ADC-Appliance unterstützten Chiffre, 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 Key Vault vornimmt. Details wie Uhrzeit, Tresor-IP-Adresse, Port, Erfolg oder Ausfall 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"

Unterstützung für Azure Key Vault