Terminazione TLS con certificati Key VaultTLS termination with Key Vault certificates

Azure Key Vault è un archivio segreto gestito da piattaforma che è possibile usare per proteggere segreti, chiavi e certificati TLS/SSL.Azure Key Vault is a platform-managed secret store that you can use to safeguard secrets, keys, and TLS/SSL certificates. Il gateway applicazione di Azure supporta l'integrazione con Key Vault per i certificati server associati a listener abilitati per HTTPS.Azure Application Gateway supports integration with Key Vault for server certificates that are attached to HTTPS-enabled listeners. Questo supporto è limitato allo SKU V2 del gateway applicazione.This support is limited to the v2 SKU of Application Gateway.

L'integrazione di Key Vault offre due modelli per la terminazione TLS:Key Vault integration offers two models for TLS termination:

  • È possibile specificare in modo esplicito i certificati TLS/SSL collegati al listener.You can explicitly provide TLS/SSL certificates attached to the listener. Questo modello è il modo tradizionale per passare i certificati TLS/SSL al gateway applicazione per la terminazione TLS.This model is the traditional way to pass TLS/SSL certificates to Application Gateway for TLS termination.
  • È possibile specificare facoltativamente un riferimento a un certificato o un segreto Key Vault esistente quando si crea un listener abilitato per HTTPS.You can optionally provide a reference to an existing Key Vault certificate or secret when you create an HTTPS-enabled listener.

L'integrazione del gateway applicazione con Key Vault offre molti vantaggi, tra cui:Application Gateway integration with Key Vault offers many benefits, including:

  • Maggiore sicurezza, perché i certificati TLS/SSL non sono gestiti direttamente dal team di sviluppo di applicazioni.Stronger security, because TLS/SSL certificates aren't directly handled by the application development team. L'integrazione consente a un team di sicurezza separato di:Integration allows a separate security team to:
    • Configurare i gateway applicazione.Set up application gateways.
    • Controllare i cicli di vita del gateway applicazione.Control application gateway lifecycles.
    • Concedere le autorizzazioni ai gateway applicazione selezionati per accedere ai certificati archiviati nell'insieme di credenziali delle chiavi.Grant permissions to selected application gateways to access certificates that are stored in your key vault.
  • Supporto per l'importazione di certificati esistenti nell'insieme di credenziali delle chiavi.Support for importing existing certificates into your key vault. In alternativa, è possibile usare Key Vault API per creare e gestire nuovi certificati con i partner Key Vault attendibili.Or use Key Vault APIs to create and manage new certificates with any of the trusted Key Vault partners.
  • Supporto per il rinnovo automatico dei certificati archiviati nell'insieme di credenziali delle chiavi.Support for automatic renewal of certificates that are stored in your key vault.

Il gateway applicazione supporta attualmente solo certificati convalidati per il software.Application Gateway currently supports software-validated certificates only. Modulo di protezione hardware (HSM): i certificati convalidati non sono supportati.Hardware security module (HSM)-validated certificates are not supported. Dopo la configurazione del gateway applicazione per l'uso di certificati Key Vault, le relative istanze recuperano il certificato da Key Vault e le installano localmente per la terminazione TLS.After Application Gateway is configured to use Key Vault certificates, its instances retrieve the certificate from Key Vault and install them locally for TLS termination. Anche le istanze eseguono il polling Key Vault a intervalli di 24 ore per recuperare una versione rinnovata del certificato, se esistente.The instances also poll Key Vault at 24-hour intervals to retrieve a renewed version of the certificate, if it exists. Se viene trovato un certificato aggiornato, il certificato TLS/SSL attualmente associato al listener HTTPS viene ruotato automaticamente.If an updated certificate is found, the TLS/SSL certificate currently associated with the HTTPS listener is automatically rotated.

Nota

Il portale di Azure supporta solo certificati dell'insieme di credenziali delle chiavi, non segreti.The Azure portal only supports KeyVault Certificates, not secrets. Il gateway applicazione supporta ancora i segreti di riferimento da un insieme di credenziali delle chiavi, ma solo tramite risorse non del portale come PowerShell, CLI, API, modelli ARM e così via.Application Gateway still supports referencing secrets from KeyVault, but only through non-Portal resources like PowerShell, CLI, API, ARM templates, etc.

Funzionamento dell'integrazioneHow integration works

L'integrazione del gateway applicazione con Key Vault richiede un processo di configurazione in tre passaggi:Application Gateway integration with Key Vault requires a three-step configuration process:

  1. Creare un'identità gestita assegnata dall'utenteCreate a user-assigned managed identity

    Si crea o si riutilizza un'identità gestita assegnata dall'utente esistente, che il gateway applicazione usa per recuperare i certificati da Key Vault per conto dell'utente.You create or reuse an existing user-assigned managed identity, which Application Gateway uses to retrieve certificates from Key Vault on your behalf. Per altre informazioni, vedere creare, elencare, eliminare o assegnare un ruolo a un'identità gestita assegnata dall'utente usando il portale di Azure.For more information, see Create, list, delete or assign a role to a user-assigned managed identity using the Azure portal. Questo passaggio consente di creare una nuova identità nel tenant Azure Active Directory.This step creates a new identity in the Azure Active Directory tenant. L'identità è considerata attendibile dalla sottoscrizione usata per creare l'identità.The identity is trusted by the subscription that's used to create the identity.

  2. Configurare l'insieme di credenziali delle chiaviConfigure your key vault

    È quindi possibile importare un certificato esistente o crearne uno nuovo nell'insieme di credenziali delle chiavi.You then either import an existing certificate or create a new one in your key vault. Il certificato verrà usato dalle applicazioni che vengono eseguite tramite il gateway applicazione.The certificate will be used by applications that run through the application gateway. In questo passaggio, è anche possibile usare un segreto dell'insieme di credenziali delle chiavi archiviato come file PFX con codifica base-64 senza password.In this step, you can also use a key vault secret that's stored as a password-less, base-64 encoded PFX file. È consigliabile usare un tipo di certificato a causa della funzionalità di rinnovo automatico disponibile con gli oggetti tipo di certificato nell'insieme di credenziali delle chiavi.We recommend using a certificate type because of the autorenewal capability that's available with certificate type objects in the key vault. Dopo aver creato un certificato o un segreto, è necessario definire i criteri di accesso nell'insieme di credenziali delle chiavi per consentire all'identità di concedere l'accesso al segreto.After you've created a certificate or a secret, you define access policies in the key vault to allow the identity to be granted get access to the secret.

    Nota

    Se si distribuisce il gateway applicazione tramite un modello ARM tramite l'interfaccia della riga di comando di Azure o PowerShell oppure tramite un'applicazione Azure distribuita dalla portale di Azure, il certificato SSL viene archiviato nell'insieme di credenziali delle chiavi come file PFX con codifica Base64.If you deploy the application gateway via an ARM template, either by using the Azure CLI or PowerShell, or via an Azure application deployed from the Azure portal, the SSL certificate is stored in the key vault as a base64-encoded PFX file. È necessario completare i passaggi descritti in usare Azure Key Vault per passare il valore del parametro sicuro durante la distribuzione.You must complete the steps in Use Azure Key Vault to pass secure parameter value during deployment.

    È particolarmente importante impostare enabledForTemplateDeployment su true .It's particularly important to set enabledForTemplateDeployment to true. Il certificato potrebbe essere privo di password o potrebbe avere una password.The certificate may be passwordless or it may have a password. Nel caso di un certificato con una password, l'esempio seguente illustra una possibile configurazione per la sslCertificates voce in properties per la configurazione del modello ARM per un gateway applicazione.In the case of a certificate with a password, the following example shows a possible configuration for the sslCertificates entry in the properties for the ARM template configuration for an app gateway. I valori di appGatewaySSLCertificateData e appGatewaySSLCertificatePassword vengono cercati dall'insieme di credenziali delle chiavi, come descritto nella sezione segreti di riferimento con ID dinamico.The values of appGatewaySSLCertificateData and appGatewaySSLCertificatePassword are looked up from the key vault as described in the section Reference secrets with dynamic ID. Seguire i riferimenti precedenti da parameters('secretName') per vedere come viene eseguita la ricerca.Follow the references backward from parameters('secretName') to see how the lookup happens. Se il certificato è privo di password, omettere la password voce.If the certificate is passwordless, omit the password entry.

    "sslCertificates": [
        {
            "name": "appGwSslCertificate",
            "properties": {
                "data": "[parameters('appGatewaySSLCertificateData')]",
                "password": "[parameters('appGatewaySSLCertificatePassword')]"
            }
        }
    ]
    
  3. Configurare il gateway applicazioneConfigure the application gateway

    Dopo aver completato i due passaggi precedenti, è possibile impostare o modificare un gateway applicazione esistente per usare l'identità gestita assegnata dall'utente.After you complete the two preceding steps, you can set up or modify an existing application gateway to use the user-assigned managed identity. È anche possibile configurare il certificato TLS/SSL del listener HTTP in modo che punti all'URI completo del certificato Key Vault o dell'ID segreto.You can also configure the HTTP listener’s TLS/SSL certificate to point to the complete URI of the Key Vault certificate or secret ID.

    Certificati di Key Vault

Passaggi successiviNext steps

Configurare la terminazione TLS con Key Vault certificati usando Azure PowerShellConfigure TLS termination with Key Vault certificates by using Azure PowerShell