Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usa l'autenticazione tramite certificato per creare una connessione VPN site-to-site (S2S) tra la tua rete on-premises e una rete virtuale Azure. L'autenticazione dei certificati utilizza certificati X.509, Azure Key Vault e un'identità gestita assegnata dall'utente. Per il flusso e i requisiti dei certificati, vedi Informazioni sulle connessioni VPN site-to-site con autenticazione dei certificati.
Importante
L'autenticazione del certificato da sito a sito non è supportata nei gateway VPN SKU basic.
Scegli lo strumento che usi per configurare la connessione. Ogni sezione contiene la procedura completa per quello strumento.
Azure portal
Prerequisiti
Si dispone già di una rete virtuale e di un gateway VPN. In caso contrario, seguire la procedura per creare un gateway VPN, quindi tornare a questa pagina per configurare la connessione di autenticazione del certificato da sito a sito.
Annotazioni
L'autenticazione del certificato da sito a sito non è supportata nei gateway VPN SKU basic.
Verificare di avere un dispositivo VPN compatibile e che sia presente un utente che possa configurarlo. Per altre informazioni sui dispositivi VPN compatibili e sulla configurazione dei dispositivi, vedere Informazioni sui dispositivi VPN.
Verificare di avere un indirizzo IPv4 pubblico esterno per il dispositivo VPN.
Se non conosci gli intervalli di indirizzi IP situati nella configurazione della rete on-premise, coordinati con qualcuno che possa fornirti quei dettagli. Quando si crea questa configurazione, è necessario specificare i prefissi degli intervalli di indirizzi IP che Azure instrada alla vostra sede. Nessuna delle subnet della rete locale può sovrapporsi alle subnet della rete virtuale a cui ci si vuole connettere.
Creare un'identità gestita
Questa configurazione richiede un'identità gestita. Per altre informazioni sulle identità gestite, vedere Informazioni sulle identità gestite per le risorse di Azure. Se si ha già un'identità gestita assegnata dall'utente, è possibile usarla per questo esercizio. In caso contrario, seguire questa procedura per creare un'identità gestita.
- Nella portale di Azure cercare e selezionare Identità gestite.
- Fare clic su Crea.
- Immettere le informazioni richieste. Quando si crea il nome, usare qualcosa di intuitivo. Ad esempio, s2s-user-managed o vpngw-managed. È necessario il nome per i passaggi di configurazione dell'insieme di credenziali delle chiavi. Il gruppo di risorse non deve corrispondere al gruppo di risorse usato per il gateway VPN.
- Seleziona Rivedi + Crea.
- I valori convalidano. Al termine della convalida, selezionare Crea.
Abilita Gateway VPN per Key Vault e identità gestita
In questa sezione viene abilitato il gateway per Azure Key Vault e l'identità gestita creata in precedenza. Per altre informazioni su Azure Key Vault, vedere Informazioni su Azure Key Vault.
- Nel portale passare al gateway di rete virtuale (gateway VPN).
- Vai su Impostazioni>, Configurazione. Nella pagina Configurazione , specifica le seguenti impostazioni di autenticazione:
- Abilitare l'accesso al Key Vault: abilitato.
- Identità gestita: Seleziona l'identità gestita che hai creato in precedenza.
- Salva le impostazioni.
Creare un gateway di rete locale
Un gateway di rete locale è un oggetto che rappresenta la tua posizione on-premises (il sito) ai fini del routing. Dai al sito un nome che Azure può usare per riferirti, e poi specifichi l'indirizzo IP del dispositivo VPN on-premises a cui crei la connessione. Specifichi anche i prefissi degli indirizzi IP che passano attraverso il gateway VPN verso il dispositivo VPN. I prefissi degli indirizzi specificati sono quelli disponibili nella rete locale. Se la rete locale viene modificata o è necessario modificare l'indirizzo IP pubblico del dispositivo VPN, è possibile aggiornare facilmente i valori in un secondo momento.
Annotazioni
Implementi l'oggetto gateway di rete locale in Azure, non nella tua posizione on-premise.
Creare un gateway di rete locale usando i valori seguenti:
- Nome: Site1
- Gruppo di risorse: TestRG1
- Località: Stati Uniti orientali
Considerazioni sulla configurazione:
- Il Gateway VPN supporta un solo indirizzo IPv4 per ogni FQDN. Se il nome di dominio si risolve in più indirizzi IP, il gateway VPN usa il primo restituito dai server DNS. Per eliminare l'incertezza, è consigliabile che il nome di dominio completamente qualificato (FQDN) si risolva sempre in un singolo indirizzo IPv4. IPv6 non è supportato.
- Il gateway VPN mantiene una cache DNS che viene aggiornata ogni 5 minuti. Il gateway prova a risolvere i nomi di dominio completamente qualificati (FQDN) solo per i tunnel disconnessi. La reimpostazione del gateway attiva anche la risoluzione FQDN.
- Sebbene la Gateway VPN supporti più connessioni a diversi gateway di rete locali con FQDN vari, tutti i FQDN devono risolversi in indirizzi IP distinti.
Nel portale, passare a Gateway di rete locale e quindi aprire la pagina Crea gateway di rete locale.
Nella scheda Informazioni di base, specificare i valori per il gateway di rete locale.
- Sottoscrizione: verificare che sia visualizzata la sottoscrizione corretta.
- Gruppo di risorse: selezionare il gruppo di risorse che si desidera usare. È possibile creare un nuovo gruppo di risorse o selezionarne uno già creato.
- Area: selezionare l'area per questo oggetto. È possibile selezionare la stessa posizione in cui risiede la rete virtuale, ma non è necessario farlo.
- Nome: specificare un nome per l'oggetto gateway di rete locale.
-
Endpoint: selezionare il tipo di endpoint per il dispositivo VPN locale come indirizzo IP o un FQDN (nome di dominio completo).
- Indirizzo IP: se si dispone di un indirizzo IP pubblico statico allocato dal provider di servizi Internet (ISP) per il dispositivo VPN, selezionare l'opzione Indirizzo IP. Compilare l'indirizzo IP come illustrato nell'esempio. Si tratta dell'indirizzo IP pubblico del dispositivo VPN a cui si dovrà connettere il gateway VPN di Azure. Se non si ha l'indirizzo IP al momento, è possibile usare i valori mostrati nell'esempio. Successivamente, è necessario tornare indietro e sostituire l'indirizzo IP segnaposto con l'indirizzo IP pubblico del dispositivo VPN. In caso contrario, Azure non può connettersi.
- FQDN: se è disponibile un indirizzo IP pubblico dinamico che potrebbe cambiare dopo un certo periodo di tempo, spesso specificato dall’ISP, è possibile usare un nome DNS costante con un servizio DNS dinamico da puntare all'indirizzo IP pubblico corrente del dispositivo VPN. Il gateway VPN di Azure risolve il nome di dominio completo per determinare l'indirizzo IP pubblico a cui connettersi.
- Spazio indirizzi: lo spazio indirizzi fa riferimento agli intervalli di indirizzi per la rete rappresentata da questa rete locale. È possibile aggiungere più intervalli di spazio degli indirizzi. Assicurarsi che gli intervalli qui specificati non si sovrappongano con gli intervalli di altre reti a cui ci si vuole connettere. Azure indirizza l'intervallo di indirizzi specificato all'indirizzo IP del dispositivo VPN locale. Usare valori personalizzati se si vuole stabilire la connessione con il sito locale, non i valori mostrati nell'esempio.
Nella scheda Avanzate è possibile configurare le impostazioni BGP, se necessario.
Dopo aver specificato i valori, selezionare Rivedi + crea nella parte inferiore della pagina per convalidare la pagina.
Selezionare Crea per creare l’oggetto gateway di rete locale.
Annotazioni
Quando configuri il Gateway VPN in modalità attiva-attiva (come mostrato nel diagramma di rete all'inizio di questo articolo), ripeti il processo per creare un secondo gateway di rete locale. Questo gateway è necessario per stabilire un secondo tunnel IPsec verso il dispositivo VPN on-premises utilizzando il suo secondo indirizzo IP pubblico.
Certificates
L'architettura di autenticazione del certificato da sito a sito si basa sia sui certificati in ingresso che in uscita.
Annotazioni
I certificati in entrata e in uscita non devono necessariamente provenire dallo stesso certificato root.
Certificato in uscita
- Usa il certificato in uscita per verificare le connessioni dirette da Azure al tuo sito locale.
- Conserva il certificato in Azure Key Vault. Specificare l'identificatore del percorso del certificato in uscita quando si configura la connessione da sito a sito.
- Crea un certificato utilizzando un'autorità di certificazione a tua scelta, oppure crea un certificato root autofirmato.
Quando generi un certificato in uscita, il certificato deve seguire queste linee guida:
- Lunghezza minima della chiave di 2048 bit.
- Include una chiave privata.
- Include autenticazione server e client.
- Include il nome del soggetto.
Certificato in entrata
- Usa il certificato in entrata quando ti connetti dalla tua sede locale ad Azure.
- Usa il valore del nome del soggetto quando configuri la connessione da sito a sito.
- Specifica la chiave pubblica della catena di certificati quando configuri la connessione site-to-site.
Generare certificati
Usare PowerShell in locale nel computer per generare certificati. La procedura seguente illustra come creare un certificato radice autofirmato e i certificati foglia (in ingresso e in uscita). Quando si usano i seguenti esempi, non chiudere la finestra di PowerShell tra la creazione del CA radice autofirmato e i certificati foglia.
Creare un certificato radice autofirmato
Usare il cmdlet New-SelfSignedCertificate per creare un certificato radice autofirmato. Per altre informazioni sui parametri, vedere New-SelfSignedCertificate.
Da un computer che esegue Windows 10 o versione successiva o Windows Server 2016 aprire una console di Windows PowerShell con privilegi elevati.
Creare un certificato radice autofirmato. Il seguente esempio crea un certificato root autofirmato chiamato
AzRootCA1, e lo installa automaticamente in Certificates-Current User\Personal\Certificates. Dopo aver creato il certificato, puoi visualizzarlo aprendo certmgr.msc o Gestisci i Certificati Utente.Apportare le modifiche necessarie prima di usare questo esempio. Il parametro
NotAfterè facoltativo. Per impostazione predefinita, senza questo parametro, il certificato scade in un anno.$params = @{ Type = 'Custom' Subject = 'CN=AzRootCA1' KeySpec = 'Signature' KeyExportPolicy = 'Exportable' KeyUsage = 'CertSign' KeyUsageProperty = 'Sign' KeyLength = 2048 HashAlgorithm = 'sha256' NotAfter = (Get-Date).AddMonths(120) CertStoreLocation = 'Cert:\CurrentUser\My' TextExtension = @('2.5.29.19={critical}{text}ca=1&pathlength=4') } $cert = New-SelfSignedCertificate @paramsPer generare i certificati foglia, lasciare aperta la console di PowerShell e procedere con i passaggi successivi.
Generare certificati foglia
Questi esempi usano il cmdlet New-SelfSignedCertificate per generare certificati foglia in uscita e in ingresso. Il sistema installa automaticamente i certificati Certificates - Current User\Personal\Certificates sul tuo computer.
Certificato in uscita
$params = @{
Type = 'Custom'
Subject = 'CN=az-outbound-cert1'
KeySpec = 'Signature'
KeyExportPolicy = 'Exportable'
KeyLength = 2048
HashAlgorithm = 'sha256'
NotAfter = (Get-Date).AddMonths(120)
CertStoreLocation = 'Cert:\CurrentUser\My'
Signer = $cert
TextExtension = @(
'2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1')
}
New-SelfSignedCertificate @params
Certificato in entrata
$params = @{
Type = 'Custom'
Subject = 'CN=on-prem-s2s-1'
KeySpec = 'Signature'
KeyExportPolicy = 'Exportable'
KeyLength = 2048
HashAlgorithm = 'sha256'
NotAfter = (Get-Date).AddMonths(120)
CertStoreLocation = 'Cert:\CurrentUser\My'
Signer = $cert
TextExtension = @(
'2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1')
}
New-SelfSignedCertificate @params
Certificato in uscita: esportare i dati delle chiavi private
Esportare le informazioni sul certificato in uscita (con la chiave privata) in un file con estensione pfx o pem. Caricare queste informazioni sul certificato in modo sicuro su Azure Key Vault nei passaggi successivi. Per esportare in .pfx usando Windows, utilizza i seguenti passaggi:
Per ottenere il file dei certificati
.cer, apri Gestisci i certificati utente.Localizza il certificato in uscita, tipicamente in Certificati - Utente corrente\Personale\Certificati, e clicca con il tasto destro. Seleziona tutte le attività>Esporta. Questa azione apre la procedura guidata di esportazione del certificato.
Nella procedura guidata selezionare Avanti.
Selezionare Sì, esportare la chiave privata e quindi selezionare Avanti.
Nella pagina Formato del file di esportazione, selezionare Scambio di informazioni personali - PKCS #12 (PFX). Selezionare gli elementi seguenti:
- Includi tutti i certificati nel percorso di certificazione se possibile
- Esporta tutte le proprietà estese
- Abilitare la privacy dei certificati
Seleziona Avanti. Nella pagina Sicurezza selezionare Password e un metodo di crittografia. Quindi seleziona Avanti.
Specifica un nome di file e naviga fino al punto in cui vuoi esportare il certificato.
Selezionare Fine per esportare il certificato.
Verrà visualizzata una conferma che indica che l'esportazione ha avuto esito positivo.
Certificato in ingresso - Esportare i dati delle chiavi pubbliche
Esportare i dati della chiave pubblica per il certificato in ingresso. Usa le informazioni contenute nel file nel campo della catena di certificati in entrata quando configuri la connessione site-to-site. I file esportati devono essere nel .cer formato . Non crittografare il valore del certificato.
- Per ottenere il file dei certificati
.cer, apri Gestisci i certificati utente. - Localizza il certificato, tipicamente in Certificati - Utente Corrente\Personale\Certificati, e clicca con il tasto destro. Seleziona tutte le attività>Esporta. Questa azione apre la procedura guidata di esportazione del certificato.
- Nella procedura guidata selezionare Avanti.
- Selezionare No, non esportare la chiave privata. Quindi seleziona Avanti.
- Selezionare Base-64 con codifica X.509 (. CER), quindi selezionare Avanti.
- Specifica un nome di file e naviga fino al punto in cui vuoi esportare il certificato.
- Selezionare Fine per esportare il certificato.
- Verrà visualizzata una conferma che indica che l'esportazione ha avuto esito positivo.
- Usa questo
.cerfile più avanti, quando configuri la connessione.
Certificato radice: esportare i dati delle chiavi pubbliche
Esportare i dati della chiave pubblica per il certificato radice. I file esportati devono essere nel .cer formato . Non crittografare il valore del certificato.
- Per ottenere il file dei certificati
.cer, apri Gestisci i certificati utente. - Localizza il certificato, tipicamente in Certificati - Utente Corrente\Personale\Certificati, e clicca con il tasto destro. Seleziona tutte le attività>Esporta. Questa azione apre la procedura guidata di esportazione del certificato.
- Nella procedura guidata selezionare Avanti.
- Selezionare No, non esportare la chiave privata. Quindi seleziona Avanti.
- Selezionare Base-64 con codifica X.509 (. CER), quindi selezionare Avanti.
- Specifica un nome di file e naviga fino al punto in cui vuoi esportare il certificato.
- Selezionare Fine per esportare il certificato.
- Verrà visualizzata una conferma che indica che l'esportazione ha avuto esito positivo.
- Usa questo
.cerfile più avanti, quando configuri la connessione.
Creare un Key Vault
Questa configurazione richiede Azure Key Vault. La procedura seguente consente di creare un insieme di credenziali delle chiavi. Si aggiunge il certificato e l'identità gestita all'insieme di credenziali in un secondo momento. Per una procedura più completa, vedere Avvio rapido: Creare un insieme di credenziali delle chiavi usando il portale di Azure.
- Nel portale di Azure, cercare Key Vault. Nella pagina Key Vault, selezionare +Crea.
- Nella pagina Crea un insieme di credenziali delle chiavi compilare le informazioni necessarie. Il gruppo di risorse non deve corrispondere al gruppo di risorse usato per il gateway VPN.
- Nella scheda di configurazione Accesso, per il modello Permessi, seleziona Azure role-based access control (consigliato).
- Non compilare nessuno degli altri campi.
- Selezionare Rivedi e crea e quindi Crea per creare l'insieme di credenziali delle chiavi.
Aggiungere il file del certificato di uscita al Key Vault
La procedura seguente consente di caricare le informazioni sul certificato in uscita in Azure Key Vault.
- Passare all'insieme di credenziali delle chiavi. Nel riquadro sinistro aprire la pagina Certificati .
- Nella pagina Certificati selezionare +Genera/Importa.
- Per Metodo di creazione del certificato selezionare Importa nell'elenco a discesa.
- Inserisci un nome di certificato intuitivo. Questo nome non deve necessariamente essere il certificato CN o il nome del file certificato.
- Caricare il file del certificato in uscita. Il file del certificato deve essere in uno dei formati seguenti:
.pfx.pem
- Inserisci la password per proteggere le informazioni del certificato.
- Selezionare Crea per caricare il file del certificato.
Concedere all'identità gestita assegnata dall'utente l'accesso al Key Vault utilizzando ruoli RBAC integrati
- Aprire Key Vault e selezionare Controllo di accesso (IAM).
- Seleziona Aggiungi, poi scegli Aggiungi assegnazione di ruolo.
- In Cerca per nome del ruolo, inserisci Key Vault Secrets User, seleziona il ruolo integrato e poi seleziona Next.
- Nella scheda Membri , per Assegna accesso a, selezionare Identità gestita.
- Seleziona + Seleziona membri. In Select managed identities, imposta Managed identity su Identità gestita assegnata dall'utente, quindi seleziona l'identità gestita assegnata dall'utente creata in precedenza.
- Seleziona Next, rivedi le impostazioni, poi seleziona Rivedi + assegna per applicare l'assegnazione del ruolo.
- Ripeti i passaggi precedenti per assegnare il ruolo Utente certficato Key Vault alla stessa identità gestita assegnata dall'utente. Questo ruolo è richiesto; altrimenti, l'identità gestita non può accedere al certificato in uscita memorizzato in Key Vault.
Annotazioni
Le modifiche all'assegnazione dei ruoli RBAC non vengono applicate immediatamente a Key Vault. Prima di procedere con il passaggio successivo, verificare sotto Assegnazioni di ruolo che siano presenti entrambi i ruoli integrati: Utente dei segreti di Key Vault e Utente del certificato di Key Vault.
Configurare il dispositivo VPN
Le connessioni da sito a sito verso una rete locale richiedono un dispositivo VPN. In questo passaggio configurare il dispositivo VPN. Quando si configura il dispositivo VPN, è necessario specificare i valori seguenti:
- Certificato: Ti servono i dati del certificato per l'autenticazione. Usa questo certificato come certificato in entrata quando crei la connessione VPN.
- Valori degli indirizzi IP pubblici per il tuo gateway di rete virtuale: Per trovare l'indirizzo IP pubblico per l'istanza della tua VM gateway VPN utilizzando il portale Azure, vai al gateway di rete virtuale e cerca nelle Proprietà delle impostazioni>. Se si dispone di un gateway in modalità attiva (scelta consigliata), assicurarsi di configurare i tunnel per ogni istanza di macchina virtuale. Entrambi i tunnel fanno parte della stessa connessione. I gateway VPN in modalità attiva hanno due indirizzi IP pubblici, uno per ogni istanza di macchina virtuale del gateway.
A seconda del dispositivo VPN usato, potrebbe essere possibile scaricare un apposito script di configurazione. Per altre informazioni, vedere Scaricare gli script di configurazione del dispositivo VPN.
Per altre informazioni sulla configurazione, vedere i collegamenti seguenti:
- Per informazioni sui dispositivi VPN compatibili, vedere Dispositivi VPN.
- Per collegamenti alle impostazioni di configurazione dei dispositivi, vedere Dispositivi VPN convalidati. I collegamenti alla configurazione del dispositivo vengono forniti nel modo più efficiente possibile. È sempre consigliabile rivolgersi al produttore del dispositivo per le informazioni di configurazione più aggiornate. L'elenco include le versioni testate. Se il sistema operativo in uso non è incluso in tale elenco, è comunque possibile che la versione sia compatibile. Rivolgersi al produttore del dispositivo per verificare la compatibilità della versione del sistema operativo del dispositivo VPN.
- Per una panoramica della configurazione di dispositivi VPN, vedere Panoramica delle configurazioni di dispositivi VPN di terze parti.
- Per informazioni sulla modifica degli esempi, vedere Modifica degli esempi di configurazione di dispositivo.
- Per i requisiti di crittografia, vedere About cryptographic requirements and Azure VPN gateways (Informazioni sui requisiti di crittografia e i gateway VPN di Azure).
- Per informazioni sui parametri IPsec/IKE, vedere Informazioni sui dispositivi VPN e sui parametri IPsec/IKE per connessioni del Gateway VPN da sito a sito. Questo link mostra informazioni su versione IKE, gruppo Diffie-Hellman, metodo di autenticazione, algoritmi di crittografia e hashing, durata dell'associazione di sicurezza, PFS, DPD, oltre ad altre informazioni sui parametri necessarie per completare la configurazione.
- Per la procedura di configurazione dei criteri IPsec/IKE, vedere Configurare i criteri IPsec/IKE per connessioni VPN da sito a sito o tra reti virtuali.
- Per connettere più dispositivi VPN basati su criteri, vedere Connettere i gateway VPN di Azure a più dispositivi VPN basati su criteri locali usando PowerShell.
Creare la connessione da sito a sito
Raccogliere i valori di configurazione
Prima di procedere, raccogliere le informazioni seguenti per i valori di configurazione necessari.
Percorso del certificato in uscita: Questo percorso conduce al certificato in uscita. Il certificato in uscita è quello che usi quando ti connetti da Azure alla tua sede locale. Queste informazioni provengono dallo stesso certificato che hai caricato su Azure Key Vault.
- Vai a Key Vaults e seleziona il tuo Key Vault. Nel riquadro sinistro espandere Oggetti e selezionare Certificati.
- Trova e seleziona il tuo certificato per aprire la pagina del certificato.
- Seleziona la riga per la versione del certificato.
- Copiare il percorso accanto a Identificatore certificato. Il percorso è specifico del certificato.
Esempio:
https://s2s-vault1.vault.azure.net/certificates/az-outbound-cert1/<certificate-value>Nome del soggetto del certificato in entrata: Questo valore è il CN del certificato in entrata. Per individuare questo valore:
- Se hai generato il certificato sul tuo computer Windows, puoi trovarlo utilizzando la Gestione dei Certificati.
- Vai alla scheda Dettagli . Scorri e seleziona Oggetto. I valori sono visualizzati nel riquadro inferiore.
- Non includere CN= nel valore.
Catena di certificati in entrata: Usa queste informazioni del certificato solo per verificare il certificato in entrata. Non contiene chiavi private. È consigliabile avere sempre almeno due certificati nella sezione del certificato in ingresso del portale.
Se hai CA intermedie nella tua catena di certificati, prima aggiungi il certificato root come primo certificato intermedio, poi segui quel certificato con il certificato intermedio in entrata.
Usare la procedura seguente per estrarre i dati del certificato nel formato necessario per il campo certificato in ingresso.
Per estrarre i dati del certificato, assicurati di aver esportato il certificato in entrata come file X.509 (. CER) codificato in Base-64 nei passaggi precedenti. Devi esportare il certificato in questo formato così da poterlo aprire con un editor di testo.
Individuare e aprire il file del
.cercertificato con un editor di testo. Quando copi i dati del certificato, assicurati di copiare il testo come una riga continua.Copiare i dati elencati tra
-----BEGIN CERTIFICATE-----e-----END CERTIFICATE-----come riga continua nel campo Catena di certificati in ingresso quando si crea una connessione.
Esempio:
Creare una connessione
Passare al gateway di rete virtuale creato e selezionare Connessioni.
Nella parte superiore della pagina Connessioni selezionare +Aggiungi per aprire la pagina Aggiungi connessione.
Nella pagina Crea connessione, all’interno della scheda Informazioni di base configurare i valori per la connessione:
In Dettagli progetto selezionare la sottoscrizione e il gruppo di risorse in cui si trovano le risorse.
In Dettagli dell’istanza configurare le impostazioni seguenti:
- Tipo di connessione: selezionare Da sito a sito (IPSec).
- Nome: assegnare un nome alla connessione. Esempio: VNet-to-Site1.
- Area: selezionare l'area per questa connessione.
Selezionare la scheda Impostazioni .
Configurare i valori seguenti:
- Gateway di rete virtuale: selezionare il gateway di rete virtuale dall'elenco a discesa.
- Gateway di rete locale: selezionare il gateway di rete locale dall'elenco a discesa.
- Metodo di autenticazione: selezionare Certificato dell'archivio chiavi.
- Percorso del certificato in uscita: Il percorso del certificato in uscita collocato in Key Vault. Il metodo per ottenere queste informazioni si trova all'inizio di questa sezione.
- Nome del soggetto del certificato in ingresso: nome comune del certificato in ingresso. Il metodo per ottenere queste informazioni si trova all'inizio di questa sezione.
-
Catena di certificati in ingresso: dati del certificato copiati dal file
.cer. Copiare e incollare le informazioni del certificato in ingresso. Il metodo per ottenere queste informazioni si trova all'inizio di questa sezione. - Protocollo IKE: selezionare IKEv2.
- Utilizza l'indirizzo IP privato di Azure: non selezionare.
- Abilita BGP: abilita solo se vuoi usare BGP.
- Criterio IPsec/IKE: selezionare Impostazione predefinita.
- Usa il selettore di traffico basato su criteri: Seleziona Disabilita.
- Timeout DPD in secondi: selezionare 45.
- Modalità di connessione: selezionare Impostazione predefinita. Questa impostazione specifica quale gateway può avviare la connessione. Per altre informazioni, vedere Impostazioni del gateway VPN - Modalità di connessione.
- Per Associazioni di regole NAT lasciare sia l'opzione In ingresso che In uscitaimpostata su 0.
Seleziona Rivedi e crea per convalidare le impostazioni della connessione, quindi seleziona Crea per creare la connessione.
Dopo la fine del deployment, puoi visualizzare la connessione nella pagina Connessioni del gateway virtuale di rete. Lo stato passa da Sconosciuto a Connessione e quindi a Operazione completata.
Azure PowerShell
Prima di iniziare
Per completare i passaggi descritti in questo articolo, assicurarsi di disporre dei prerequisiti seguenti:
- Un account Azure con una sottoscrizione attiva. Se non ne hai uno, crearne uno gratuitamente.
- Azure PowerShell installato localmente o Azure Cloud Shell. Per altre informazioni, vedere Installare il modulo Azure PowerShell.
- Un computer Windows che esegue Windows 10 o versione successiva o Windows Server 2016 o versione successiva (obbligatorio per la generazione di certificati).
- Familiarità con gli intervalli di indirizzi IP nella configurazione di rete locale.
- Un dispositivo VPN compatibile e un utente che può configurarlo. Per altre informazioni sui dispositivi VPN compatibili, vedere Informazioni sui dispositivi VPN.
- Indirizzo IPv4 pubblico esterno per il dispositivo VPN locale.
- Assicurarsi che le subnet della rete locale non si sovrappongano alle subnet di rete virtuale a cui si vuole connettersi.
Generare i certificati digitali
Per prima cosa, genera i certificati root CA autofirmati e i certificati leaf necessari per l'autenticazione VPN. Il certificato CA radice stabilisce la catena di certificati e viene usato per firmare i certificati foglia.
È possibile procedere in due modi:
- Usare lo stesso certificato radice per firmare i certificati foglia sia per il gateway VPN di Azure che per il dispositivo locale.
- Usa certificati root separati, uno per firmare i certificati leaf per il gateway VPN Azure e un altro per firmare i certificati leaf per il dispositivo on-premise.
Negli esempi seguenti vengono usati due certificati radice: un certificato radice firma il certificato foglia usato per l'autenticazione in uscita da Azure a locale e l'altro certificato radice viene usato per firmare i certificati foglia per il dispositivo locale.
Creare certificati radice CA autofirmati
Usare il New-SelfSignedCertificate cmdlet per creare certificati radice autofirmati. Il seguente esempio crea un certificato root autofirmato chiamato AzRootCA1, che Windows installa automaticamente in Certificates-Current User\Personal\Certificates. Dopo aver creato il certificato, puoi visualizzarlo aprendo certmgr.msc o Gestendo i Certificati Utente.
Apportare le modifiche necessarie prima di usare questo esempio. Il parametro NotAfter è facoltativo. Per impostazione predefinita, senza questo parametro, il certificato scade in un anno. Eseguire i comandi seguenti da una console di Windows PowerShell con privilegi elevati.
# Define Root certificate subjects for Azure
$azureRootcertSubject1 = 'CN=AzRootCA1'
# Create Root Certificate for Azure
$params = @{
Type = 'Custom'
Subject = $azureRootcertSubject1
KeySpec = 'Signature'
KeyExportPolicy = 'Exportable'
KeyUsage = 'CertSign'
KeyUsageProperty = 'Sign'
KeyLength = 2048
HashAlgorithm = 'sha256'
NotAfter = (Get-Date).AddMonths(120)
CertStoreLocation = 'Cert:\CurrentUser\My'
TextExtension = @('2.5.29.19={critical}{text}ca=1&pathlength=4')
}
$azureRootcert = New-SelfSignedCertificate @params
# Assign the certificate subject for the on-premises device
$onpremRootcertSubject1 = 'CN=OnPremRootCA1'
# Create a self-sign Root Certificate for the on-premises site
$params = @{
Type = 'Custom'
Subject = $onpremRootcertSubject1
KeySpec = 'Signature'
KeyExportPolicy = 'Exportable'
KeyUsage = 'CertSign'
KeyUsageProperty = 'Sign'
KeyLength = 2048
HashAlgorithm = 'sha256'
NotAfter = (Get-Date).AddMonths(120)
CertStoreLocation = 'Cert:\CurrentUser\My'
TextExtension = @('2.5.29.19={critical}{text}ca=1&pathlength=4')
}
$onpremRootcert = New-SelfSignedCertificate @params
Mantieni aperta la console PowerShell dopo aver eseguito i comandi precedenti, perché devi fare riferimento ai certificati generati nei passaggi successivi.
Generare certificati foglia firmati dai certificati CA radice
Generare certificati foglia firmati dai certificati radice. Usa questi certificati per l'autenticazione VPN site-to-site. Questi esempi utilizzano il cmdlet New-SelfSignedCertificate per generare certificati foglia in uscita e in entrata. Windows installa automaticamente i certificati in Certificati - Utente Corrente\Personale\Certificati.
Creare un certificato in uscita per il gateway VPN
# Assign the leaf certificate subjects for the VPN gateway
$azureLeafcertSubject1 = 'CN=az-outbound-cert1'
$certPassword = '12345'
# Get the Root certificates from certificate store
$azureRootcert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Subject -eq $azureRootcertSubject1 }
# Create Leaf Certificate (signed by Azure Root CA)
$params = @{
Type = 'Custom'
Subject = $azureLeafcertSubject1
KeySpec = 'Signature'
KeyExportPolicy = 'Exportable'
KeyLength = 2048
HashAlgorithm = 'sha256'
NotAfter = (Get-Date).AddMonths(120)
CertStoreLocation = 'Cert:\CurrentUser\My'
Signer = $azureRootcert
TextExtension = @('2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1')
}
$azureLeafcert = New-SelfSignedCertificate @params
Creare un certificato in uscita per il dispositivo locale
# Assign leaf certificate subjects for the on-premises device
$onpremLeafcertSubject1 = 'CN=onprem-s2s-1'
# Get the on-premises Root certificate from the certificate store
$onpremRootcert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Subject -eq $onpremRootcertSubject1 }
# Create Leaf Certificate 1 (signed by on-premises Root CA)
$params = @{
Type = 'Custom'
Subject = $onpremLeafcertSubject1
KeySpec = 'Signature'
KeyExportPolicy = 'Exportable'
KeyLength = 2048
HashAlgorithm = 'sha256'
NotAfter = (Get-Date).AddMonths(120)
CertStoreLocation = 'Cert:\CurrentUser\My'
Signer = $onpremRootcert
TextExtension = @('2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1')
}
$onpremLeafcert1 = New-SelfSignedCertificate @params
Annotazioni
La generazione di certificati radice e foglia in un host Windows per il dispositivo locale viene visualizzata solo come esempio per illustrare il flusso di lavoro di installazione corretto. Poiché la creazione del certificato varia in base al dispositivo, consultare la documentazione del fornitore per istruzioni sulla generazione dei certificati radice e foglia necessari e sull'importazione nel dispositivo locale.
Esportare i certificati
Esportare i certificati radice in formato Base64 (.cer) e i certificati foglia in formato PKCS#12 (.pfx).
$certPath="PATH_TO_LOCAL_FOLDER_TO_STORE_EXPORTED_CERTIFICATES"
# password used in export certificates
$certPassword = '12345'
# Export root certificates
$azureRootcert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Subject -eq $azureRootcertSubject1 }
$onpremRootcert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Subject -eq $onpremRootcertSubject1 }
# Export root certificates to DER format first
Export-Certificate -Cert $azureRootcert -FilePath "$certPath\AzRootCA1.cert" -Force
Export-Certificate -Cert $onpremRootcert -FilePath "$certPath\OnPremRootCA1.cert" -Force
# Convert root certificates to Base64-encoded PEM format
certutil -encode "$certPath\AzRootCA1.cert" "$certPath\AzRootCA1.cer"
certutil -encode "$certPath\OnPremRootCA1.cert" "$certPath\OnPremRootCA1.cer"
# Export leaf certificates as PFX (with private key)
$mypwd = ConvertTo-SecureString -String $certPassword -Force -AsPlainText
$azureLeafcert1 = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.Subject -eq $azureLeafcertSubject1 }
Export-PfxCertificate -Cert $azureLeafcert1 -FilePath "$certPath\az-outbound-cert1.pfx" -Password $mypwd
Dichiarare le variabili di ambiente di Azure
Le sezioni successive fanno riferimento alle variabili definite nel blocco di codice seguente. Aggiornare i valori delle variabili in modo che corrispondano all'ambiente prima di eseguire il codice.
# Azure subscription and resource group
$subscriptionName = '<your-subscription-name>'
$rgName = '<your-resource-group-name>'
$location = 'westus'
# Virtual network 1 configuration
$vnet1Name = 'vnet1'
$vnet1Address = '10.1.0.0/16'
$gw1SubnetAddress = '10.1.0.0/24'
# VPN gateway names
$gw1Name = 'gw1'
Creare reti virtuali e subnet del gateway
Crea un gruppo di risorse.
# Create a Resource Group
$rg = New-AzResourceGroup -Name $rgName -Location $location -Force
# Add tags for organization
Set-AzResourceGroup -Name $rgName -Tags @{ usage = "s2s-digitalcert" }
Creare le reti virtuali con le subnet del gateway. La subnet gateway deve essere nominata GatewaySubnet e dovrebbe essere /27 o più grande.
# Create Virtual Network VNet1
$vnet1 = New-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnet1Name `
-AddressPrefix $vnet1Address -Location $location
# Add subnets to VNet1
Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet1 `
-AddressPrefix $gw1SubnetAddress
Set-AzVirtualNetwork -VirtualNetwork $vnet1
Importante
I gruppi di sicurezza di rete (NSG) nella subnet del gateway non sono supportati. L'associazione di un gruppo di sicurezza di rete a questa subnet potrebbe causare il malfunzionamento del gateway di rete virtuale.
Creare identità gestite assegnate dall'utente
Questa configurazione richiede un'identità gestita. I gateway VPN usano identità gestite assegnate dall'utente per accedere in modo sicuro ai certificati archiviati in Azure Key Vault. Per altre informazioni sulle identità gestite, vedere Informazioni sulle identità gestite per le risorse di Azure.
Quando crei il nome di identità gestita, usa qualcosa di intuitivo, come gw1-s2s-kv o vpngwy-managed. È necessario il nome per i passaggi di configurazione di Key Vault. Il gruppo di risorse non deve corrispondere al gruppo di risorse usato per il gateway VPN.
# Create managed user identity for VPN Gateway to access to the Azure Keyvault
$gw1UserIdentityName = 'gw1-s2s-kv'
$gw1UserIdentity = New-AzUserAssignedIdentity -ResourceGroupName $rgName `
-Name $gw1UserIdentityName -Location $location
Un nome di identità gestita assegnato dall'utente non deve necessariamente essere globalmente unico tra le sottoscrizioni. Deve essere unica all'interno del gruppo di risorse in cui la crei.
Creare Key Vaults e configurare i permessi RBAC
Questa configurazione richiede Azure Key Vault. Creare Key Vault per archiviare i certificati e configurare le autorizzazioni RBAC per garantire un accesso sicuro. Per altre informazioni su Azure Key Vault, vedere Informazioni su Azure Key Vault.
Annotazioni
Quando si utilizza il portale di Azure per creare un insieme di credenziali chiave per l'autenticazione del certificato, assicurarsi di selezionare controllo degli accessi basato sul ruolo di Azure come modello di autorizzazione nella configurazione di accesso. Questo approccio è consigliato.
# Generate a globally unique Azure Key Vault name.
# Key Vault names must be unique across all Azure regions and must not exceed 24 characters.
$suffix1 = "ALFANUMERIC_VALUE"
$keyVault1Name = "kv-$suffix1"
# Deleting the Keyvault in removed state to avoid failure
Remove-AzKeyVault -VaultName $keyVault1Name -Location $location -InRemovedState -Force -ErrorAction SilentlyContinue
# Create Key Vault 1 - Azure RBAC is the default access control model for the newly created vaults
$keyVault1 = New-AzKeyVault -VaultName $keyVault1Name -ResourceGroupName $rgName -Location $location
Assegnare ruoli di controllo degli accessi in base al ruolo alle identità gestite
Concedere alle identità gestite i permessi necessari per accedere ai certificati in Key Vault utilizzando Azure RBAC.
# Define RBAC role IDs
$secretsUserRoleId = "4633458b-17de-408a-b874-0445c86b69e6" # built-in role for Key Vault Secrets User
$certUserRoleId = "db79e9a7-68ee-4b58-9aeb-b90e7c24fcba" # built-in role for Key Vault Certificate User
$certOfficerRoleId = "a4417e6f-fecd-4de8-b567-7b0420556985" # built-in role for Key Vault Certificates Officer
# Assign Key Vault Certificates Officer role to current user (required to import certificates)
$currentUser = (Get-AzContext).Account.Id
$currentUserObjectId = (Get-AzADUser -UserPrincipalName $currentUser).Id
Write-Host "Assigning Key Vault Certificates Officer role to current user: $currentUser"
New-AzRoleAssignment -ObjectId $currentUserObjectId `
-RoleDefinitionId $certOfficerRoleId -Scope $keyVault1.ResourceId
# Assign RBAC roles to the user-assigned managed identity to access Key Vault 1
New-AzRoleAssignment -ObjectId $gw1UserIdentity.PrincipalId `
-RoleDefinitionId $secretsUserRoleId -Scope $keyVault1.ResourceId
New-AzRoleAssignment -ObjectId $gw1UserIdentity.PrincipalId `
-RoleDefinitionId $certUserRoleId -Scope $keyVault1.ResourceId
Le modifiche alle autorizzazioni del controllo degli accessi in base al ruolo non diventano effettive immediatamente. Come buona pratica, prevedi circa due minuti affinché le assegnazioni di ruolo aggiornate si propaghino prima di verificare che i permessi siano arrivati all'identità gestita assegnata dall'utente. Se il controllo degli accessi in base al ruolo non è ancora stato propagato, i passaggi successivi potrebbero non riuscire.
Annotazioni
Microsoft consiglia di usare Azure RBAC (controllo di accesso basato sui ruoli) per il controllo dell'accesso a Key Vault anziché il modello legacy di criteri di accesso. Per ulteriori informazioni, consultare Migrare dalle politiche di accesso al controllo degli accessi basato sui ruoli di Azure.
Importare certificati in Key Vault
Carica il certificato leaf in uscita (con la chiave privata) in Azure Key Vault. Devi usare il .pfx formato per il file del certificato.
# Import leaf certificate in the Key Vault 1
$certPath="PATH_TO_LOCAL_FOLDER_TO_STORE_EXPORTED_CERTIFICATES"
$gw1OutboundCertName = 'gw1-cert'
$certPassword = ConvertTo-SecureString -String "12345" -Force -AsPlainText
Import-AzKeyVaultCertificate -VaultName $keyVault1Name -Name $gw1OutboundCertName `
-FilePath "$certPath\az-outbound-cert1.pfx" -Password $certPassword
Creare indirizzi IP pubblici per i gateway VPN
Creare indirizzi IP pubblici con SKU Standard con ridondanza della zona per i gateway VPN. Configura il gateway VPN in modalità attiva-attiva, quindi ti servono due indirizzi IP pubblici.
# Create public IP for Gateway 1
$gw1pubIP1Name = $gw1Name + "pip1"
Write-Host "Creating public IP: $gw1pubIP1Name"
$gw1pubIP1 = New-AzPublicIpAddress -ResourceGroupName $rgName -Name $gw1pubIP1Name `
-Location $location -AllocationMethod Static -Sku Standard -Tier Regional `
-Zone @("1", "2", "3")
# Create public IP for Gateway 2
$gw1pubIP2Name = $gw1Name + "pip2"
Write-Host "Creating public IP: $gw1pubIP2Name"
$gw1pubIP2 = New-AzPublicIpAddress -ResourceGroupName $rgName -Name $gw1pubIP2Name `
-Location $location -AllocationMethod Static -Sku Standard -Tier Regional `
-Zone @("1", "2", "3")
Creare gateway VPN
Quando crei il gateway VPN, specifica l'identità gestita assegnata dall'utente in modo che il gateway possa accedere ai certificati in Key Vault per l'autenticazione. Il gateway VPN utilizza il certificato in uscita per autenticarsi al dispositivo VPN on-premises e valida la connessione in ingresso dal dispositivo on-premises utilizzando la catena di certificati root configurata nel gateway.
Creare gateway VPN con le identità gestite assegnate dall'utente per l'accesso a Key Vault.
Annotazioni
La distribuzione del gateway VPN può richiedere 30-45 minuti.
# Get virtual network and subnet references
$vnet1 = Get-AzVirtualNetwork -ResourceGroupName $rgName -Name $vnet1Name
$gw1Subnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet1
# Create IP configurations for the active-active gateway
$gw1IpConfig1 = New-AzVirtualNetworkGatewayIpConfig -Name 'gw1-config1' `
-PublicIpAddress $gw1pubIP1 -Subnet $gw1Subnet
$gw1IpConfig2 = New-AzVirtualNetworkGatewayIpConfig -Name 'gw1-config2' `
-PublicIpAddress $gw1pubIP2 -Subnet $gw1Subnet
# Create VPN gateway 1 with user-assigned managed identity and Key Vault access enabled
# Creation of VPN gateway may take 30-45 minutes
$gw1 = New-AzVirtualNetworkGateway -ResourceGroupName $rgName -Name $gw1Name `
-Location $location `
-IpConfigurations @($gw1IpConfig1, $gw1IpConfig2) `
-GatewayType Vpn `
-VpnType RouteBased `
-EnableBgp $false `
-GatewaySku VpnGw2AZ `
-EnableActiveActiveFeature `
-VpnGatewayGeneration Generation2 `
-UserAssignedIdentityId $gw1UserIdentity.Id
Per verificare lo stato di provisioning del gateway VPN, usa il seguente comando.
write-host "vpn gateway provisioning state: "$gw1.ProvisioningState
Creare gateway di rete locali
Un gateway di rete locale è un oggetto che rappresenta la tua posizione on-premises (il sito) ai fini del routing. Dai al sito un nome che Azure può usare per riferirti, e poi specifichi l'indirizzo IP del dispositivo VPN on-premises a cui crei la connessione. Specifichi anche i prefissi degli indirizzi IP che passano attraverso il gateway VPN verso il dispositivo VPN. I prefissi degli indirizzi specificati sono quelli disponibili nella rete locale. Se la rete locale viene modificata o è necessario modificare l'indirizzo IP pubblico del dispositivo VPN, è possibile aggiornare facilmente i valori in un secondo momento.
Annotazioni
Implementi l'oggetto gateway di rete locale in Azure, non nella tua posizione on-premise.
Considerazioni sulla configurazione:
- Supporto FQDN: Se hai un indirizzo IP pubblico dinamico, usa un nome DNS costante con un servizio DNS dinamico per puntare al tuo indirizzo IP pubblico attuale. Il gateway VPN di Azure risolve il nome di dominio completo per determinare l'indirizzo IP pubblico a cui connettersi.
- Indirizzo IP singolo: Il gateway VPN supporta un solo indirizzo IPv4 per ogni FQDN. Se il nome di dominio si risolve in più indirizzi IP, il gateway VPN usa il primo restituito dai server DNS. Microsoft consiglia di risolvere sempre il nome di dominio completo in un singolo indirizzo IPv4. IPv6 non è supportato.
- Cache DNS: Il gateway VPN gestisce una cache DNS aggiornata ogni 5 minuti. Il gateway prova a risolvere i nomi di dominio completamente qualificati (FQDN) solo per i tunnel disconnessi. La reimpostazione del gateway attiva anche la risoluzione FQDN.
- Più connessioni: anche se il gateway VPN supporta più connessioni a gateway di rete locale diversi con nomi di dominio completi diversi, tutti i nomi di dominio completi devono risolversi in indirizzi IP diversi.
Creare gateway di rete locali per rappresentare il sito di rete in sede. Ogni gateway di rete locale specifica gli indirizzi IP pubblici e i prefissi di indirizzo del sito locale remoto.
# Get public IP addresses of the on-premises VPN device
$site1publicIP1 = "PUBLIC_IP_ADDRESS_1_ON_PREMISES_DEVICE"
$site1publicIP2 = "PUBLIC_IP_ADDRESS_2_ON_PREMISES_DEVICE"
$onpremAddressPrefix ="10.2.0.0/16"
# Create Local Network Gateway for the Site1
# The remote peer is the first on-premises public IP: $site1publicIP1
$localNetGwSite11Name = 'localNetSite11'
$localNetGwSite11 = New-AzLocalNetworkGateway -Name $localNetGwSite11Name `
-ResourceGroupName $rgName `
-Location $location `
-AddressPrefix $onpremAddressPrefix `
-GatewayIpAddress $site1publicIP1
# Create Local Network Gateway for the Site1
# The remote peer is the second on-premises public IP: $site1publicIP2
$localNetGwSite12Name = 'localNetSite12'
$localNetGwSite12 = New-AzLocalNetworkGateway -Name $localNetGwSite12Name `
-ResourceGroupName $rgName `
-Location $location `
-AddressPrefix $onpremAddressPrefix `
-GatewayIpAddress $site1publicIP2
Configurare il dispositivo VPN locale
Le connessioni da sito a sito verso una rete locale richiedono un dispositivo VPN. Quando si configura il dispositivo VPN, è necessario specificare i valori seguenti:
- Certificato: Sono necessari i dati del certificato usati per l'autenticazione. Usa questo certificato come certificato in entrata quando crei la connessione VPN.
- Valori degli indirizzi IP pubblici per il tuo gateway di rete virtuale: Per trovare l'indirizzo IP pubblico per la tua istanza VM del gateway VPN utilizzando il portale Azure, vai al gateway di rete virtuale e cerca nelle Proprietà delle impostazioni>. Se si dispone di un gateway in modalità attiva-attiva (scelta consigliata), configurare i tunnel per ogni istanza del gateway VPN. Entrambi i tunnel fanno parte della stessa connessione. I gateway VPN in modalità attiva hanno due indirizzi IP pubblici, uno per ogni istanza di macchina virtuale del gateway.
A seconda del tuo dispositivo VPN, potresti riuscire a scaricare uno script di configurazione del dispositivo VPN. Per altre informazioni, vedere Scaricare gli script di configurazione del dispositivo VPN. Vedere la tabella seguente per le risorse di configurazione del dispositivo VPN.
| Risorsa | Description |
|---|---|
| Dispositivi VPN | Informazioni sui dispositivi VPN compatibili |
| Dispositivi VPN convalidati | Collegamenti alle impostazioni di configurazione del dispositivo |
| Informazioni sui requisiti di crittografia | Requisiti di crittografia per i gateway VPN di Azure |
| Parametri IPsec/IKE | Versione IKE, gruppo Diffie-Hellman, crittografia e algoritmi di hashing |
| Configurazione dei criteri IPsec/IKE | Configurare criteri IPsec/IKE personalizzati |
Creare connessioni VPN con l'autenticazione del certificato
Crea le connessioni VPN utilizzando l'autenticazione tramite certificato. Ogni connessione usa il certificato in uscita da Azure Key Vault e convalida le connessioni in ingresso rispetto alla catena di certificati radice del sito remoto.
Preparare gli oggetti di autenticazione del certificato in uscita per il gateway VPN
Usare i comandi seguenti per ottenere il riferimento al certificato in uscita archiviato in Azure Key Vault e preparare i parametri di autenticazione per la connessione.
# Get certificate information from Key Vault
$gw1certOutbound = Get-AzKeyVaultCertificate -VaultName $keyVault1Name -Name $gw1OutboundCertName
$gw1OutboundCertUrl = $gw1certOutbound.Id
$gw1OutboundcertData = Get-AzKeyVaultCertificate -VaultName $keyVault1Name -Name $gw1OutboundCertName
$gw1OutboundcertSubjectName = $gw1OutboundcertData.Certificate.Subject -replace "^CN=", ""
La variabile $gw 1OutboundCertUrl contiene il percorso del certificato in uscita in Azure Key Vault. Il percorso è specifico del certificato e ha un aspetto simile al seguente: https://your-keyvault.vault.azure.net/certificates/certificate-name/<certificate-value>. Per controllare il valore, usare il comando seguente.
Write-Host $gw1OutboundCertUrl
Preparare le informazioni sul certificato in ingresso per il gateway VPN
In questa sezione, i passaggi seguenti presuppongono che tu abbia esportato il certificato root on-premises in formato Base64 nella cartella specificata da $certPath come OnPremRootCA1.cer. Usa la catena di certificati in $onpremcertChainInbound 1 per verificare il certificato in entrata in Gateway VPN. La catena non contiene chiavi private.
Eseguire i comandi seguenti:
# Read inbound certificate chain files (Root CA certificates in Base64 format for on-premises device)
$certPath = "PATH_TO_LOCAL_FOLDER_TO_STORE_EXPORTED_CERTIFICATES"
$onpremInboundCert1Data = Get-Content -Path "$certPath\OnPremRootCA1.cer" -Raw
# Remove PEM headers and get only the encoded-Base64 certificate content
$onpremInboundCert1Base64 = $onpremInboundCert1Data -replace "-----BEGIN CERTIFICATE-----", "" `
-replace "-----END CERTIFICATE-----", ""
$onpremcertChainInbound1 = @($onpremInboundCert1Base64)
Quando si usano ca intermedie, è consigliabile avere sempre almeno due certificati nella sezione certificato in ingresso.
Importante
Se hai CA intermedie nella tua catena di certificati, aggiungi prima il certificato root come primo certificato intermedio, e poi segui quel certificato con il certificato intermedio in entrata.
Dichiarare la variabile
In questa fase si presuppone che sia stato creato il certificato foglia del dispositivo locale e che sia possibile recuperare il nome soggetto del certificato. Nel dispositivo locale estrarre il nome comune (CN) dal certificato foglia in uscita. Nel flusso di lavoro di esempio il cn è s2s onprem1, ma è necessario verificare il valore CN usato nel proprio ambiente. Assegnare il CN estratto dal certificato foglia locale alla variabile:
$onpremLeafcertSubject1="onprem-s2s-1"
Non includere "CN=" nella variabile $onpremLeafcertSubject 1
Creare oggetti di autenticazione del certificato
# Create certificate authentication object for Gateway 1
# Gateway 1 uses its own certificate for outbound, and trusts Root CA 2 for inbound
$gw1certAuth = New-AzVirtualNetworkGatewayCertificateAuthentication `
-OutboundAuthCertificate $gw1OutboundCertUrl `
-InboundAuthCertificateSubjectName $onpremLeafcertSubject1 `
-InboundAuthCertificateChain $onpremcertChainInbound1
Creare le connessioni VPN
Distribuire due connessioni per collegare due tunnel site-to-site tra il gateway VPN e il dispositivo locale.
# Get VPN gateway object
$gw1 = Get-AzVirtualNetworkGateway -Name $gw1Name -ResourceGroupName $rgName
# Create connection from Gateway1 to site1-tunnel1
$gw1Connection1Name = 'Connection11'
$vpnConnection11 = New-AzVirtualNetworkGatewayConnection -Name $gw1Connection1Name `
-ResourceGroupName $rgName `
-Location $location `
-VirtualNetworkGateway1 $gw1 `
-LocalNetworkGateway2 $localNetGwSite11 `
-ConnectionType IPsec `
-AuthenticationType "Certificate" `
-CertificateAuthentication $gw1certAuth
# Create connection from Gateway1 to site1-tunnel2
$gw1Connection2Name = 'Connection12'
$vpnConnection12 = New-AzVirtualNetworkGatewayConnection -Name $gw1Connection2Name `
-ResourceGroupName $rgName `
-Location $location `
-VirtualNetworkGateway1 $gw1 `
-LocalNetworkGateway2 $localNetGwSite12 `
-ConnectionType IPsec `
-AuthenticationType "Certificate" `
-CertificateAuthentication $gw1certAuth
Verificare la connessione VPN
Dopo aver creato le connessioni, verifica le impostazioni del gateway VPN:
# Verify connection was created successfully
write-host "gw1-connection name....: "$vpnConnection11.Name
write-host "gw1-auth type..........: "$vpnConnection11.AuthenticationType
write-host "gw1-cert authentication.: "$vpnConnection11.CertificateAuthentication
write-host "gw1-outboundCertUrl....: "$vpnConnection11.CertificateAuthentication.OutboundAuthCertificate
write-host "gw1-Inbound CertSubject: "$vpnConnection11.CertificateAuthentication.InboundAuthCertificateSubjectName
# Verify the status of VPN tunnels
$connection1 = Get-AzVirtualNetworkGatewayConnection -Name $gw1Connection1Name `
-ResourceGroupName $rgName
$connection2 = Get-AzVirtualNetworkGatewayConnection -Name $gw1Connection2Name `
-ResourceGroupName $rgName
Write-Host "Connection 1 Status: $($connection1.ConnectionStatus)"
Write-Host "Connection 2 Status: $($connection2.ConnectionStatus)"
Quando i tunnel VPN vengono attivati, lo stato della connessione mostra Collegato.
È anche possibile verificare la connessione nel portale di Azure:
- Vai al gateway della rete virtuale nel portale.
- Selezionare Connessioni nel riquadro sinistro.
- Verificare che lo stato della connessione mostri Connesso.
Interfaccia a riga di comando di Azure
Prima di iniziare
Per completare i passaggi descritti in questo articolo, assicurarsi di disporre dei prerequisiti seguenti:
- Un account Azure con una sottoscrizione attiva. Se non ne hai uno, crearne uno gratuitamente.
- interfaccia della riga di comando di Azure installata localmente o Azure Cloud Shell. Per altre informazioni, vedere Installare il interfaccia della riga di comando di Azure.
- Familiarità con gli intervalli di indirizzi IP nella configurazione di rete locale.
- Un dispositivo VPN compatibile e un utente che può configurarlo. Per altre informazioni sui dispositivi VPN compatibili, vedere Informazioni sui dispositivi VPN.
- Indirizzo IPv4 pubblico esterno per il dispositivo VPN locale.
- Assicurarsi che le subnet della rete locale non si sovrappongano alle subnet di rete virtuale a cui si vuole connettersi.
Generare i certificati digitali
Per prima cosa, genera i certificati root CA autofirmati e i certificati leaf necessari per l'autenticazione VPN. Il certificato CA radice stabilisce la catena di certificati e viene usato per firmare i certificati foglia.
È possibile procedere in due modi:
- Usare lo stesso certificato radice per firmare i certificati foglia sia per il gateway VPN di Azure che per il dispositivo locale.
- Usa certificati root separati, uno per firmare i certificati leaf per il gateway VPN Azure e un altro per firmare i certificati leaf per il dispositivo on-premise.
Negli esempi seguenti vengono usati due certificati radice: un certificato radice firma il certificato foglia usato per l'autenticazione in uscita da Azure a locale e l'altro certificato radice viene usato per firmare i certificati foglia per il dispositivo locale.
Annotazioni
Puoi creare i certificati digitali su Windows o Linux. Questo articolo mostra la creazione su Linux utilizzando OpenSSL.
Creare certificati radice CA autofirmati
Usa OpenSSL per creare certificati root autofirmati. Il seguente esempio crea un certificato root autofirmato chiamato VPNRootCA1, che viene automaticamente memorizzato nella cartella certslocale .
Esegui i seguenti comandi da un terminale bash per creare il certificato root per il gateway VPN di Azure.
# Define the root certificate subject for Azure VPN
azureRootcertSubject1='VPNRootCA1'
# Define the local folder to store the digital certificates
pathFiles="$(pwd)"
certPath="$pathFiles/certs/"
echo "folder to store digital certificates: $certPath"
# Create a local folder ./certs/
mkdir -p "$certPath"
# Generate the private key for the Azure VPN gateway root certificate
openssl genrsa -out "$certPath${azureRootcertSubject1}.key" 2048
# Generate the self-signed root certificate for the Azure VPN gateway
openssl req -x509 -new -nodes \
-key "$certPath${azureRootcertSubject1}.key" \
-sha256 \
-days 3650 \
-out "$certPath${azureRootcertSubject1}.cer" \
-subj "/CN=$azureRootcertSubject1" \
-extensions v3_ca \
-config <(cat <<EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
[req_distinguished_name]
[v3_ca]
basicConstraints = critical, CA:TRUE, pathlen:4
keyUsage = critical, keyCertSign, cRLSign
EOF
)
Esegui i seguenti comandi per creare il certificato root per il dispositivo VPN on-premise.
# Define the root certificate subject for the on-premises VPN device
onpremRootcertSubject1='VPNRootCA2'
echo "Creating Root Certificate: $onpremRootcertSubject1"
# Generate the private key for the on-premises root certificate
openssl genrsa -out "$certPath${onpremRootcertSubject1}.key" 2048
# Generate the self-signed root certificate for the on-premises VPN device
openssl req -x509 -new -nodes \
-key "$certPath${onpremRootcertSubject1}.key" \
-sha256 \
-days 3650 \
-out "$certPath${onpremRootcertSubject1}.cer" \
-subj "/CN=$onpremRootcertSubject1" \
-extensions v3_ca \
-config <(cat <<EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
[req_distinguished_name]
[v3_ca]
basicConstraints = critical, CA:TRUE, pathlen:4
keyUsage = critical, keyCertSign, cRLSign
EOF
)
echo "Root certificate $onpremRootcertSubject1 created"
Per generare i certificati finali, lascia aperto il terminale bash e procedi con i passaggi successivi.
Generare certificati foglia firmati dai certificati CA radice
Generare certificati foglia firmati dai certificati radice. Usa questi certificati per l'autenticazione VPN site-to-site. I seguenti esempi utilizzano OpenSSL per generare certificati foglia in uscita e in entrata. Quando crei i certificati, il processo li memorizza automaticamente in ./certs sul tuo computer Linux.
Creare un certificato in uscita per il gateway VPN
azureLeafcertSubject1='s2s-cert1'
echo "$(date) - start creation leaf cert: $azureLeafcertSubject1"
# Generate the private key
openssl genrsa -out "$certPath${azureLeafcertSubject1}.key" 2048
# Generate the certificate signing request (CSR)
openssl req -new \
-key "$certPath${azureLeafcertSubject1}.key" \
-out "$certPath${azureLeafcertSubject1}.csr" \
-subj "/CN=$azureLeafcertSubject1"
# Sign the leaf certificate for the Azure VPN gateway with Root CA 1
openssl x509 -req \
-in "$certPath${azureLeafcertSubject1}.csr" \
-CA "$certPath${azureRootcertSubject1}.cer" \
-CAkey "$certPath${azureRootcertSubject1}.key" \
-CAcreateserial \
-out "$certPath${azureLeafcertSubject1}.cer" \
-days 3650 \
-sha256 \
-extfile <(cat <<EOF
extendedKeyUsage = clientAuth, serverAuth
EOF
)
echo "$(date) - Leaf cert: $azureLeafcertSubject1 created"
Creare un certificato in uscita per il dispositivo locale
onpremLeafcertSubject1='s2s-cert2'
# Generate the private key
openssl genrsa -out "$certPath${onpremLeafcertSubject1}.key" 2048
# Generate the certificate signing request (CSR)
openssl req -new \
-key "$certPath${onpremLeafcertSubject1}.key" \
-out "$certPath${onpremLeafcertSubject1}.csr" \
-subj "/CN=$onpremLeafcertSubject1"
# Sign the leaf certificate with Root CA 2, used for the on-premises VPN device
openssl x509 -req \
-in "$certPath${onpremLeafcertSubject1}.csr" \
-CA "$certPath${onpremRootcertSubject1}.cer" \
-CAkey "$certPath${onpremRootcertSubject1}.key" \
-CAcreateserial \
-out "$certPath${onpremLeafcertSubject1}.cer" \
-days 3650 \
-sha256 \
-extfile <(cat <<EOF
extendedKeyUsage = clientAuth, serverAuth
EOF
)
Annotazioni
Il seguente esempio mostra come generare certificati root e leaf su un host Linux per il dispositivo on-premise, per illustrare il corretto flusso di lavoro di configurazione. Poiché la creazione dei certificati varia a seconda del dispositivo, consulta la documentazione del fornitore per le istruzioni su come generare i certificati root e leaf necessari e importarli nel dispositivo on-site.
Esportare i certificati
Esportare i certificati radice in formato Base64 (.cer) e i certificati foglia in formato PKCS#12 (.pfx).
pathFiles="$(pwd)"
certPath="$pathFiles/certs/"
certPassword="12345"
# Export the Azure leaf certificate and its private key to a .pfx file
openssl pkcs12 -export \
-out "$certPath${azureLeafcertSubject1}.pfx" \
-inkey "$certPath${azureLeafcertSubject1}.key" \
-in "$certPath${azureLeafcertSubject1}.cer" \
-certfile "$certPath${azureRootcertSubject1}.cer" \
-passout "pass:$certPassword"
Dichiarare le variabili di ambiente di Azure
Le sezioni successive fanno riferimento alle variabili definite nel blocco di codice seguente. Aggiorna i valori delle variabili per adattarli al tuo ambiente prima di eseguire lo script.
# Resource group name and location for the deployment of Azure resources
rgName="s2s-cert-azcli"
location='eastus'
# Variables for the virtual network
vnet1Name='vnet1'
vnet1Address='10.1.0.0/16'
gw1SubnetAddress='10.1.0.0/24'
# VPN gateway name
gw1Name='gw1'
gw1ConfigName='gw1-config'
Creare reti virtuali e subnet del gateway
Crea un gruppo di risorse per contenere le risorse necessarie a questa implementazione. Puoi creare un nuovo gruppo di risorse oppure selezionarne uno che hai già creato.
# Create a resource group
az group create --name "$rgName" --location "$location"
# Add tags for organization (optional)
az group update --name "$rgName" --tags usage="s2s-digitalcertificates" --output none
Creare la rete virtuale con una sottorete del gateway. La subrete gateway deve essere nominata GatewaySubnet e deve essere /27 o più grande.
# Create the virtual network
az network vnet create \
--resource-group "$rgName" \
--name "$vnet1Name" \
--address-prefix "$vnet1Address" \
--location "$location"
# Add the GatewaySubnet
az network vnet subnet create \
--resource-group "$rgName" \
--vnet-name "$vnet1Name" \
--name "GatewaySubnet" \
--address-prefix "$gw1SubnetAddress"
Importante
I gruppi di sicurezza di rete (NSG) nella subnet del gateway non sono supportati. L'associazione di un gruppo di sicurezza di rete a questa subnet potrebbe causare il malfunzionamento del gateway di rete virtuale.
Creare un'identità gestita assegnata dall'utente
Questa configurazione richiede un'identità gestita. I gateway VPN usano identità gestite assegnate dall'utente per accedere in modo sicuro ai certificati archiviati in Azure Key Vault. Per altre informazioni sulle identità gestite, vedere Informazioni sulle identità gestite per le risorse di Azure.
Quando crei il nome di identità gestita, usa qualcosa di intuitivo, come gw1-s2s-kv o vpngwy-managed. È necessario il nome per i passaggi di configurazione di Key Vault. Il gruppo di risorse non deve corrispondere al gruppo di risorse usato per il gateway VPN.
# Create a user-assigned managed identity for the VPN gateway to access the Azure Key Vault
gw1UserIdentityName='gw1-s2s-kv'
az identity create --resource-group "$rgName" --name "$gw1UserIdentityName" --location "$location"
Un nome di identità gestita assegnato dall'utente non deve necessariamente essere globalmente unico tra le sottoscrizioni. Deve essere unica all'interno del gruppo di risorse in cui la crei.
Crea un Key Vault e configura i permessi RBAC
Questa configurazione richiede Azure Key Vault. Crea un Key Vault per memorizzare i certificati e configura i permessi RBAC per un accesso sicuro. Per altre informazioni su Azure Key Vault, vedere Informazioni su Azure Key Vault.
Annotazioni
Quando si utilizza il portale di Azure per creare un insieme di credenziali chiave per l'autenticazione del certificato, assicurarsi di selezionare controllo degli accessi basato sul ruolo di Azure come modello di autorizzazione nella configurazione di accesso. Questo approccio è consigliato.
# Generate a globally unique Azure Key Vault name.
# Key Vault names must be unique across all Azure regions and must not exceed 24 characters.
suffix="ALFANUMERIC_VALUE"
keyVault1Name="kv-$suffix"
# Delete the Key Vault if it's in the soft-deleted state, to avoid failure
az keyvault purge --name "$keyVault1Name" --location "$location"
# Create the Key Vault - Azure RBAC is the default access control model for newly created vaults
az keyvault create --name "$keyVault1Name" --resource-group "$rgName" --location "$location"
Assegnare ruoli di controllo degli accessi in base al ruolo alle identità gestite
Concedere alle identità gestite i permessi necessari per accedere ai certificati in Key Vault utilizzando Azure RBAC.
# Define the RBAC role IDs
secretsUserRoleId="4633458b-17de-408a-b874-0445c86b69e6" # built-in role "Key Vault Secrets User"
certUserRoleId="db79e9a7-68ee-4b58-9aeb-b90e7c24fcba" # built-in role "Key Vault Certificate User"
certOfficerRoleId="a4417e6f-fecd-4de8-b567-7b0420556985" # built-in role "Key Vault Certificates Officer" (for full certificate management)
keyVaultResourceId=$(az keyvault show --name "$keyVault1Name" --resource-group "$rgName" --query id -o tsv)
# Get the Microsoft Entra service principal object ID of the managed identity
gw1UserIdentityPrincipalId=$(az identity show --resource-group "$rgName" --name "$gw1UserIdentityName" --query principalId -o tsv)
# Assign RBAC roles to the user-assigned managed identity to access the Key Vault
az role assignment create --assignee-object-id "$gw1UserIdentityPrincipalId" \
--assignee-principal-type ServicePrincipal \
--role "$certUserRoleId" \
--scope "$keyVaultResourceId"
az role assignment create --assignee-object-id "$gw1UserIdentityPrincipalId" \
--assignee-principal-type ServicePrincipal \
--role "$secretsUserRoleId" \
--scope "$keyVaultResourceId"
# Assign the Key Vault Certificates Officer role to the current user (required to import certificates)
currentUser=$(az account show --query user.name -o tsv)
currentUserObjectId=$(az ad user show --id "$currentUser" --query id -o tsv)
az role assignment create --assignee-object-id "$currentUserObjectId" \
--assignee-principal-type User \
--role "$certOfficerRoleId" \
--scope "$keyVaultResourceId"
Le modifiche alle autorizzazioni del controllo degli accessi in base al ruolo non diventano effettive immediatamente. Come buona pratica, prevedi circa due minuti affinché le assegnazioni di ruolo aggiornate si propaghino prima di verificare che i permessi siano arrivati all'identità gestita assegnata dall'utente. Se il controllo degli accessi in base al ruolo non è ancora stato propagato, i passaggi successivi potrebbero non riuscire.
Annotazioni
Microsoft consiglia di usare Azure RBAC (controllo di accesso basato sui ruoli) per il controllo dell'accesso a Key Vault anziché il modello legacy di criteri di accesso. Per ulteriori informazioni, consultare Migrare dalle politiche di accesso al controllo degli accessi basato sui ruoli di Azure.
Importare certificati in Key Vault
Carica il certificato leaf in uscita (con la chiave privata) in Azure Key Vault. Devi usare il .pfx formato per il file del certificato.
pathFiles="$(pwd)"
certPath="$pathFiles/certs/"
azureLeafcertSubject1='s2s-cert1'
cert1FilePath="$certPath${azureLeafcertSubject1}.pfx"
certPassword="12345"
# Name assigned to the certificate object stored in Azure Key Vault for the VPN gateway
gw1OutboundCertName='gw1-cert'
az keyvault certificate import \
--vault-name "$keyVault1Name" \
--name "$gw1OutboundCertName" \
--file "$cert1FilePath" \
--password "$certPassword"
Crea indirizzi IP pubblici per il gateway VPN
Creare indirizzi IP pubblici con SKU Standard con ridondanza della zona per il gateway VPN. Poiché configuri il gateway VPN in modalità attiva-attiva, hai bisogno di due indirizzi IP pubblici.
# Create public IP 1 for Gateway 1
gw1pubIP1Name="${gw1Name}pip1"
az network public-ip create \
--resource-group "$rgName" \
--name "$gw1pubIP1Name" \
--location "$location" \
--allocation-method Static \
--sku Standard \
--tier Regional \
--zone 1 2 3
# Create public IP 2 for Gateway 1
gw1pubIP2Name="${gw1Name}pip2"
az network public-ip create \
--resource-group "$rgName" \
--name "$gw1pubIP2Name" \
--location "$location" \
--allocation-method Static \
--sku Standard \
--tier Regional \
--zone 1 2 3
Creare un gateway VPN
Crea un gateway VPN utilizzando l'identità gestita assegnata dall'utente per l'accesso a Key Vault.
Annotazioni
La distribuzione del gateway VPN può richiedere 30-45 minuti.
# Create the Azure VPN gateway in active-active mode
az network vnet-gateway create \
--resource-group "$rgName" \
--name "$gw1Name" \
--location "$location" \
--public-ip-address "$gw1pubIP1Name" "$gw1pubIP2Name" \
--vnet "$vnet1Name" \
--gateway-type Vpn \
--vpn-type RouteBased \
--sku VpnGw2AZ \
--vpn-gateway-generation Generation2
# Get the user-assigned managed identity created earlier
gw1UserIdentityId=$(az identity show \
--resource-group "$rgName" \
--name "$gw1UserIdentityName" \
--query id -o tsv)
# Attach the user-assigned managed identity to the existing Azure VPN gateway
echo "$(date) - updating vpn gateway with managed identity"
az network vnet-gateway identity assign \
--resource-group "$rgName" \
--name "$gw1Name" \
--user-assigned "$gw1UserIdentityId"
# Verify the user-assigned managed identity is associated with the VPN gateway
az network vnet-gateway identity show \
--resource-group "$rgName" \
--name "$gw1Name" \
--query userAssignedIdentities \
-o json
Per verificare lo stato di provisioning del gateway VPN, usa il seguente comando.
az network vnet-gateway show \
--resource-group "$rgName" \
--name "$gw1Name" \
--query provisioningState \
-o tsv
Al termine del dispiegamento, il comando restituisce Successo. Procedi con il passo successivo solo quando il deployment del gateway VPN avrà successo.
Creare gateway di rete locali
Un gateway di rete locale è un oggetto che rappresenta la tua posizione on-premises (il sito) ai fini del routing. Dai al sito un nome che Azure può usare per riferirti, e poi specifichi l'indirizzo IP del dispositivo VPN on-premises a cui crei la connessione. Specifichi anche i prefissi degli indirizzi IP che passano attraverso il gateway VPN verso il dispositivo VPN. I prefissi degli indirizzi specificati sono quelli disponibili nella rete locale. Se la rete locale viene modificata o è necessario modificare l'indirizzo IP pubblico del dispositivo VPN, è possibile aggiornare facilmente i valori in un secondo momento.
Annotazioni
Implementi l'oggetto gateway di rete locale in Azure, non nella tua posizione on-premise.
Considerazioni sulla configurazione:
- Supporto FQDN: Se hai un indirizzo IP pubblico dinamico, usa un nome DNS costante con un servizio DNS dinamico per puntare al tuo indirizzo IP pubblico attuale. Il gateway VPN di Azure risolve il nome di dominio completo per determinare l'indirizzo IP pubblico a cui connettersi.
- Indirizzo IP singolo: Il gateway VPN supporta un solo indirizzo IPv4 per ogni FQDN. Se il nome di dominio si risolve in più indirizzi IP, il gateway VPN usa il primo restituito dai server DNS. Microsoft consiglia di risolvere sempre il nome di dominio completo in un singolo indirizzo IPv4. IPv6 non è supportato.
- Cache DNS: Il gateway VPN gestisce una cache DNS aggiornata ogni 5 minuti. Il gateway prova a risolvere i nomi di dominio completamente qualificati (FQDN) solo per i tunnel disconnessi. La reimpostazione del gateway attiva anche la risoluzione FQDN.
- Più connessioni: anche se il gateway VPN supporta più connessioni a gateway di rete locale diversi con nomi di dominio completi diversi, tutti i nomi di dominio completi devono risolversi in indirizzi IP diversi.
Creare gateway di rete locali per rappresentare il sito di rete in sede. Ogni gateway di rete locale specifica gli indirizzi IP pubblici e i prefissi di indirizzo del sito locale remoto.
# Public IP addresses of the on-premises VPN device
site1publicIP1="PUBLIC_IP_ADDRESS_1_ON_PREMISES_DEVICE"
site1publicIP2="PUBLIC_IP_ADDRESS_2_ON_PREMISES_DEVICE"
onpremAddressPrefix="10.2.0.0/16"
# Create the local network gateway for Site1
# The remote peer is the first on-premises public IP: $site1publicIP1
localNetGwSite11Name='localNetSite11'
az network local-gateway create \
--resource-group "$rgName" \
--name "$localNetGwSite11Name" \
--location "$location" \
--local-address-prefixes "$onpremAddressPrefix" \
--gateway-ip-address "$site1publicIP1"
# Create the local network gateway for Site1
# The remote peer is the second on-premises public IP: $site1publicIP2
localNetGwSite12Name='localNetSite12'
az network local-gateway create \
--resource-group "$rgName" \
--name "$localNetGwSite12Name" \
--location "$location" \
--local-address-prefixes "$onpremAddressPrefix" \
--gateway-ip-address "$site1publicIP2"
Configurare il dispositivo VPN locale
Le connessioni da sito a sito verso una rete locale richiedono un dispositivo VPN. Quando si configura il dispositivo VPN, è necessario specificare i valori seguenti:
- Certificato: Sono necessari i dati del certificato usati per l'autenticazione. Usa questo certificato come certificato in entrata quando crei la connessione VPN.
- Valori degli indirizzi IP pubblici per il tuo gateway di rete virtuale: Per trovare l'indirizzo IP pubblico della tua istanza VM gateway VPN usando il portale Azure, vai sul gateway virtuale di rete e cerca nelle Proprietà delle impostazioni>. Se si dispone di un gateway in modalità attiva-attiva (scelta consigliata), configurare i tunnel per ogni istanza del gateway VPN. Entrambi i tunnel fanno parte della stessa connessione. I gateway VPN in modalità attiva hanno due indirizzi IP pubblici, uno per ogni istanza di macchina virtuale del gateway.
A seconda del tuo dispositivo VPN, potresti riuscire a scaricare uno script di configurazione del dispositivo VPN. Per altre informazioni, vedere Scaricare gli script di configurazione del dispositivo VPN. Vedere la tabella seguente per le risorse di configurazione del dispositivo VPN.
| Risorsa | Description |
|---|---|
| Dispositivi VPN | Informazioni sui dispositivi VPN compatibili |
| Dispositivi VPN convalidati | Collegamenti alle impostazioni di configurazione del dispositivo |
| Informazioni sui requisiti di crittografia | Requisiti di crittografia per i gateway VPN di Azure |
| Parametri IPsec/IKE | Versione IKE, gruppo Diffie-Hellman, crittografia e algoritmi di hashing |
| Configurazione dei criteri IPsec/IKE | Configurare criteri IPsec/IKE personalizzati |
Creare connessioni VPN con l'autenticazione del certificato
Crea le connessioni VPN utilizzando l'autenticazione tramite certificato. Ogni connessione usa il certificato in uscita da Azure Key Vault e convalida le connessioni in ingresso rispetto alla catena di certificati radice del sito remoto.
Prepara le informazioni di autenticazione dei certificati in uscita per il gateway VPN
Usa i seguenti comandi per ottenere il riferimento al certificato in uscita memorizzato in Azure Key Vault.
# Get outbound certificate information from Key Vault for the Azure VPN gateway connections
gw1OutboundCertUrl=$(az keyvault certificate show --vault-name "$keyVault1Name" \
--name "$gw1OutboundCertName" --query id -o tsv)
La gw1OutboundCertUrl variabile contiene il percorso verso il certificato in uscita in Azure Key Vault. Per controllare il valore, usare il comando seguente.
echo $gw1OutboundCertUrl
Il percorso è specifico del certificato e ha un aspetto simile al seguente: https://your-keyvault.vault.azure.net/certificates/certificate-name/<certificate-value>.
Preparare le informazioni sul certificato in ingresso per il gateway VPN
I passaggi seguenti presuppongono di esportare il certificato root e memorizzarlo sul computer locale nella cartella specificata dalla certPath variabile, con il nome VPNRootCA2.cer (codificato in Base64). Questo certificato è il certificato radice locale generato in precedenza in Crea certificati CA radice autofirmati. Usa le informazioni del certificato per verificare il certificato in entrata nel gateway VPN. Non contiene chiavi private.
pathFiles="$(pwd)"
certPath="$pathFiles/certs"
onpremLeafcertSubject1=$(openssl x509 -in "$certPath/s2s-cert2.cer" -noout -subject | sed -E 's/^subject= ?CN=//')
# Read the inbound certificate chain file for the Azure VPN gateway.
# This is the Root CA certificate in Base64 format for the on-premises VPN device.
inboundCert2Path="$certPath/VPNRootCA2.cer"
inboundCert2Base64=$(grep -v "BEGIN CERTIFICATE" "$inboundCert2Path" | grep -v "END CERTIFICATE" | tr -d '\n\r')
Quando si usano ca intermedie, è consigliabile avere sempre almeno due certificati nella sezione certificato in ingresso.
Importante
Se hai CA intermedie nella tua catena di certificati, prima aggiungi il certificato root come primo certificato intermedio, poi segui quel certificato con il certificato intermedio in entrata.
In questa fase si presuppone che sia già stato creato il certificato foglia del dispositivo locale e che sia possibile recuperare il nome soggetto del certificato. Nel dispositivo locale estrarre il nome comune (CN) dal certificato foglia in uscita. Nel flusso di lavoro di esempio, il CN è onprem-s2s-1, ma dovresti verificare il valore CN usato nel tuo ambiente.
Non includere il CN= prefisso nel valore della variabile.
Creare oggetti di autenticazione del certificato
# Create the certificate authentication object in JSON format for the Azure VPN gateway
# Gateway 1 uses its own certificate for outbound, and trusts Root CA 2 for inbound
certAuthJson="{\"outboundAuthCertificate\":\"$gw1OutboundCertUrl\",\"inboundAuthCertificateChain\":[\"$inboundCert2Base64\"],\"inboundAuthCertificateSubjectName\":\"$onpremLeafcertSubject1\"}"
Creare le connessioni VPN
Distribuire due connessioni per collegare due tunnel site-to-site tra il gateway VPN e il dispositivo locale.
# Create connection 1 from Gateway1 to site1
gw1Connection11Name='Connection11'
az network vpn-connection create \
--resource-group "$rgName" \
--name "$gw1Connection11Name" \
--location "$location" \
--vnet-gateway1 "$gw1Name" \
--local-gateway2 "$localNetGwSite11Name" \
--auth-type Certificate \
--cert-auth "$certAuthJson" \
--routing-weight 3
# Create connection 2 from Gateway1 to site1
gw1Connection12Name='Connection12'
az network vpn-connection create \
--resource-group "$rgName" \
--name "$gw1Connection12Name" \
--location "$location" \
--vnet-gateway1 "$gw1Name" \
--local-gateway2 "$localNetGwSite12Name" \
--auth-type Certificate \
--cert-auth "$certAuthJson" \
--routing-weight 3
Verificare la connessione VPN
Dopo aver creato le connessioni, verifica l'impostazione del gateway VPN.
echo "$(date) - checking vpn connection: $gw1Connection11Name"
vpnConnection11=$(az network vpn-connection show --resource-group "$rgName" --name "$gw1Connection11Name")
echo "$gw1Name - connection name......: $(echo "$vpnConnection11" | jq -r '.name')"
echo "$gw1Name - connection type......: $(echo "$vpnConnection11" | jq -r '.connectionType')"
echo "$gw1Name - authentication type..: $(echo "$vpnConnection11" | jq -r '.authenticationType')"
echo "$gw1Name - connection status....: $(echo "$vpnConnection11" | jq -r '.connectionStatus')"
echo "$(date) - checking vpn connection: $gw1Connection12Name"
vpnConnection12=$(az network vpn-connection show --resource-group "$rgName" --name "$gw1Connection12Name")
echo "$gw1Name - connection name......: $(echo "$vpnConnection12" | jq -r '.name')"
echo "$gw1Name - connection type......: $(echo "$vpnConnection12" | jq -r '.connectionType')"
echo "$gw1Name - authentication type..: $(echo "$vpnConnection12" | jq -r '.authenticationType')"
echo "$gw1Name - connection status....: $(echo "$vpnConnection12" | jq -r '.connectionStatus')"
Quando i tunnel VPN sono stati stabiliti con successo, lo stato della connessione appare come Collegato.
È anche possibile verificare la connessione nel portale di Azure:
- Vai al gateway della rete virtuale nel portale.
- Selezionare Connessioni nel riquadro sinistro.
- Verificare che lo stato della connessione mostri Connesso.
Passaggi successivi
- Informazioni sulle impostazioni di configurazione del Gateway VPN
- Configurare BGP per il gateway VPN
- Informazioni sulle connessioni gateway VPN a disponibilità elevata
- Informazioni sui dispositivi VPN
- Informazioni sui requisiti crittografici e i gateway VPN Azure
- Informazioni su Key Vault
- Guida al controllo degli accessi in base al ruolo (RBAC) per Azure Key Vault