Firewall di Azure Premium certificati

Per configurare correttamente Firewall di Azure Premium'ispezione TLS, è necessario fornire un certificato CA intermedio valido e depositarlo nell'insieme di credenziali delle chiavi di Azure.

Certificati usati da Firewall di Azure Premium

In una distribuzione tipica vengono usati tre tipi di certificati:

  • Certificato CA intermedio (certificato CA)

    Un'autorità di certificazione (CA) è un'organizzazione attendibile per firmare certificati digitali. Un'autorità di certificazione verifica l'identità e la legittimità di una società o di un singolo utente che richiede un certificato. Se la verifica ha esito positivo, la CA emissione di un certificato firmato. Quando il server presenta il certificato al client (ad esempio, il Web browser) durante un handshake SSL/TLS, il client tenta di verificare la firma in base a un elenco di buoni firmatari noti. I Web browser vengono in genere con elenchi di CA che considera implicitamente attendibili per identificare gli host. Se l'autorità non è presente nell'elenco, come per alcuni siti che firmano i propri certificati, il browser avvisa l'utente che il certificato non è firmato da un'autorità riconosciuta e chiede all'utente se desidera continuare le comunicazioni con un sito non verificato.

  • Certificato server (certificato del sito Web)

    Certificato associato a a un nome di dominio specifico. Se un sito Web ha un certificato valido, significa che un'autorità di certificazione ha intrapreso una procedura per verificare che l'indirizzo Web appartenga effettivamente a tale organizzazione. Quando si digita un URL o si segue un collegamento a un sito Web protetto, il browser verifica la presenza delle caratteristiche seguenti nel certificato:

    • L'indirizzo del sito Web corrisponde all'indirizzo nel certificato.
    • Il certificato è firmato da un'autorità di certificazione riconosciuta dal browser come autorità attendibile.

    In alcuni casi gli utenti possono connettersi a un server con un certificato non attendibile. Firewall di Azure la connessione verrà interrotta come se il server termina la connessione.

  • Certificato CA radice (certificato radice)

    Un'autorità di certificazione può rilasciare più certificati sotto forma di struttura ad albero. Un certificato radice è il certificato più importante dell'albero.

Firewall di Azure Premium possibile intercettare il traffico HTTP/S in uscita e generare automaticamente un certificato server per www.website.com . Questo certificato viene generato usando il certificato della CA intermedia fornito. Per il funzionamento di questa procedura, il browser dell'utente finale e le applicazioni client devono considerare attendibile il certificato della CA radice dell'organizzazione o il certificato della CA intermedia.

Processo del certificato

Requisiti del certificato ca intermedio

Verificare che il certificato della CA sia conforme ai requisiti seguenti:

  • Quando viene distribuito come Key Vault segreto, è necessario usare PFX senza password (Pkcs12) con un certificato e una chiave privata.

  • Deve essere un singolo certificato e non deve includere l'intera catena di certificati.

  • Deve essere valido per un anno.

  • Deve essere una chiave privata RSA con dimensioni minime di 4096 byte.

  • Deve avere KeyUsage l'estensione contrassegnata come Critical con il KeyCertSign flag (RFC 5280; 4.2.1.3 Utilizzo chiavi).

  • Deve avere BasicContraints l'estensione contrassegnata come Critical (RFC 5280; 4.2.1.9 Basic Constraints).

  • Il CA flag deve essere impostato su TRUE.

  • Path Length deve essere maggiore o uguale a uno.

Insieme di credenziali chiave di Azure

Azure Key Vault è un archivio segreto gestito da piattaforma che è possibile usare per proteggere segreti, chiavi e certificati TLS/SSL. Firewall di Azure Premium supporta l'integrazione con Key Vault certificati server collegati a un criterio firewall.

Per configurare l'insieme di credenziali delle chiavi:

  • È necessario importare un certificato esistente con la relativa coppia di chiavi nell'insieme di credenziali delle chiavi.
  • In alternativa, è anche possibile usare un segreto dell'insieme di credenziali delle chiavi archiviato come file PFX con codifica base 64 senza password. Un file PFX è un certificato digitale contenente sia la chiave privata che la chiave pubblica.
  • È consigliabile usare un'importazione di certificati CA perché consente di configurare un avviso in base alla data di scadenza del certificato.
  • Dopo aver importato un certificato o un segreto, è necessario definire i criteri di accesso nell'insieme di credenziali delle chiavi per consentire all'identità di ottenere l'accesso al certificato/segreto.
  • Il certificato ca fornito deve essere considerato attendibile dal carico di lavoro di Azure. Assicurarsi che siano distribuiti correttamente.

È possibile creare o riutilizzare un'identità gestita assegnata dall'utente esistente, che Firewall di Azure per recuperare i certificati Key Vault per conto dell'utente. Per altre informazioni, vedere Informazioni sulle identità gestite per le risorse di Azure

Configurare un certificato nei criteri

Per configurare un certificato CA nei criteri Premium firewall, selezionare i criteri e quindi selezionare Ispezione TLS. Selezionare Abilitato nella pagina di ispezione TLS. Selezionare quindi il certificato ca in Azure Key Vault, come illustrato nella figura seguente:

Firewall di Azure Premium diagramma di panoramica

Importante

Per visualizzare e configurare un certificato dal portale di Azure, è necessario aggiungere l'account utente di Azure ai criteri di Key Vault Access. Assegnare all'account utente Get ed List in Secret Permissions (Autorizzazioni segrete). Azure Key Vault criteri di accesso

Creare un certificato CA autofirmato

Se si vogliono creare certificati personalizzati per testare e verificare l'ispezione TLS, è possibile usare gli script seguenti per creare una CA radice autofirmata e una CA intermedia.

Importante

Per la produzione, è consigliabile usare l'infrastruttura a chiave pubblica aziendale per creare un certificato ca intermedio. Un'infrastruttura a chiave pubblica aziendale sfrutta l'infrastruttura esistente e gestisce la distribuzione della CA radice a tutti i computer endpoint. Per altre informazioni, vedere Deploy and configure Enterprise CA certificates for Firewall di Azure.

Esistono due versioni di questo script:

  • uno script bash cert.sh
  • uno script di PowerShell cert.ps1

Entrambi gli script usano anche il openssl.cnf file di configurazione. Per usare gli script, copiare il contenuto di openssl.cnf e o nel computer cert.sh cert.ps1 locale.

Gli script generano i file seguenti:

  • rootCA.crt/rootCA.key: certificato pubblico e chiave privata della CA radice.
  • interCA.crt/interCA.key : certificato pubblico e chiave privata della CA intermedia
  • interCA.pfx - Pacchetto pkcs12 della CA intermedia che verrà usato dal firewall

Importante

rootCA.key deve essere archiviato in un percorso offline sicuro. Gli script generano un certificato con validità di 1024 giorni. Gli script richiedono file binari openssl installati nel computer locale. Per ulteriori informazioni, vedere https://www.openssl.org/.

Dopo aver creato i certificati, distribuirli nei percorsi seguenti:

  • rootCA.crt: distribuire nei computer endpoint (solo certificato pubblico).
  • interCA.pfx: importare come certificato in un Key Vault e assegnarlo ai criteri del firewall.

openssl.cnf

[ req ]
default_bits        = 4096
distinguished_name  = req_distinguished_name
string_mask         = utf8only
default_md          = sha512

[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
stateOrProvinceName             = State or Province Name
localityName                    = Locality Name
0.organizationName              = Organization Name
organizationalUnitName          = Organizational Unit Name
commonName                      = Common Name
emailAddress                    = Email Address

[ rootCA_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign

[ interCA_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true, pathlen:1
keyUsage = critical, digitalSignature, cRLSign, keyCertSign

[ server_ext ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:false
keyUsage = critical, digitalSignature
extendedKeyUsage = serverAuth

Script Bash - cert.sh

#!/bin/bash

# Create root CA
openssl req -x509 -new -nodes -newkey rsa:4096 -keyout rootCA.key -sha256 -days 1024 -out rootCA.crt -subj "/C=US/ST=US/O=Self Signed/CN=Self Signed Root CA" -config openssl.cnf -extensions rootCA_ext

# Create intermediate CA request
openssl req -new -nodes -newkey rsa:4096 -keyout interCA.key -sha256 -out interCA.csr -subj "/C=US/ST=US/O=Self Signed/CN=Self Signed Intermediate CA"

# Sign on the intermediate CA
openssl x509 -req -in interCA.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out interCA.crt -days 1024 -sha256 -extfile openssl.cnf -extensions interCA_ext

# Export the intermediate CA into PFX
openssl pkcs12 -export -out interCA.pfx -inkey interCA.key -in interCA.crt -password "pass:"

echo ""
echo "================"
echo "Successfully generated root and intermediate CA certificates"
echo "   - rootCA.crt/rootCA.key - Root CA public certificate and private key"
echo "   - interCA.crt/interCA.key - Intermediate CA public certificate and private key"
echo "   - interCA.pfx - Intermediate CA pkcs12 package which could be uploaded to Key Vault"
echo "================"

PowerShell - cert.ps1

# Create root CA
openssl req -x509 -new -nodes -newkey rsa:4096 -keyout rootCA.key -sha256 -days 3650 -out rootCA.crt -subj '/C=US/ST=US/O=Self Signed/CN=Self Signed Root CA' -config openssl.cnf -extensions rootCA_ext

# Create intermediate CA request
openssl req -new -nodes -newkey rsa:4096 -keyout interCA.key -sha256 -out interCA.csr -subj '/C=US/ST=US/O=Self Signed/CN=Self Signed Intermediate CA'

# Sign on the intermediate CA
openssl x509 -req -in interCA.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out interCA.crt -days 3650 -sha256 -extfile openssl.cnf -extensions interCA_ext

# Export the intermediate CA into PFX
openssl pkcs12 -export -out interCA.pfx -inkey interCA.key -in interCA.crt -password 'pass:'

Write-Host ""
Write-Host "================"
Write-Host "Successfully generated root and intermediate CA certificates"
Write-Host "   - rootCA.crt/rootCA.key - Root CA public certificate and private key"
Write-Host "   - interCA.crt/interCA.key - Intermediate CA public certificate and private key"
Write-Host "   - interCA.pfx - Intermediate CA pkcs12 package which could be uploaded to Key Vault"
Write-Host "================"

Generazione automatica del certificato (anteprima)

Per le distribuzioni non di produzione, è possibile usare il meccanismo Firewall di Azure Premium di generazione automatica della certificazione, che crea automaticamente le tre risorse seguenti:

  • Identità gestita
  • Key Vault
  • Certificato CA radice autofirmato

È sufficiente scegliere la nuova identità gestita di anteprima, che consente di riunire le tre risorse nei criteri Premium e di configurare l'ispezione TLS.

Certificati generati automaticamente

Risoluzione dei problemi

Se il certificato della CA è valido, ma non è possibile accedere a FQDN o URL sotto l'ispezione TLS, controllare gli elementi seguenti:

  • Verificare che il certificato del server Web sia valido.

  • Verificare che il certificato ca radice sia installato nel sistema operativo client.

  • Verificare che il browser o il client HTTPS contenga un certificato radice valido. Firefox e altri browser possono avere criteri di certificazione speciali.

  • Assicurarsi che il tipo di destinazione URL nella regola dell'applicazione copre il percorso corretto e tutti gli altri collegamenti ipertestuali incorporati nella pagina HTML di destinazione. È possibile usare i caratteri jolly per una facile copertura dell'intero percorso URL richiesto.

Passaggi successivi