Generare ed esportare certificati - Linux - OpenSSL
Gateway VPN connessioni da punto a sito (P2S) possono essere configurate per l'uso dell'autenticazione del certificato. La chiave pubblica del certificato radice viene caricata in Azure e ogni client VPN deve avere i file di certificato appropriati installati localmente per connettersi. Questo articolo illustra come creare un certificato radice autofirmato e generare certificati client usando OpenSSL. Per altre informazioni, vedere Configurazione da punto a sito - Autenticazione del certificato.
Prerequisiti
Per usare questo articolo, è necessario disporre di un computer che esegue OpenSSL.
Certificato radice autofirmato
Questa sezione illustra come generare un certificato radice autofirmato. Dopo aver generato il certificato, si esporta il file di dati della chiave pubblica del certificato radice.
L'esempio seguente consente di generare il certificato radice autofirmato.
openssl genrsa -out caKey.pem 2048 openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
Stampare i dati pubblici del certificato radice autofirmato in formato Base64. Questo è il formato supportato da Azure. Caricare questo certificato in Azure come parte dei passaggi di configurazione da punto a sito .
openssl x509 -in caCert.pem -outform der | base64 -w0 && echo
Certificati client
In questa sezione viene generato il certificato utente (certificato client). I file di certificato vengono generati nella directory locale in cui si eseguono i comandi. È possibile usare lo stesso certificato client in ogni computer client o generare certificati specifici per ogni client. È fondamentale che il certificato client sia firmato dal certificato radice.
Per generare un certificato client, usare gli esempi seguenti.
export PASSWORD="password" export USERNAME=$(hostnamectl --static) # Generate a private key openssl genrsa -out "${USERNAME}Key.pem" 2048 # Generate a CSR (Certificate Sign Request) openssl req -new -key "${USERNAME}Key.pem" -out "${USERNAME}Req.pem" -subj "/CN=${USERNAME}" # Sign the CSR using the CA certificate and CA key openssl x509 -req -days 365 -in "${USERNAME}Req.pem" -CA caCert.pem -CAkey caKey.pem -CAcreateserial -out "${USERNAME}Cert.pem" -extfile <(echo -e "subjectAltName=DNS:${USERNAME}\nextendedKeyUsage=clientAuth")
Per verificare il certificato client, usare l'esempio seguente.
openssl verify -CAfile caCert.pem caCert.pem "${USERNAME}Cert.pem"
Passaggi successivi
Per continuare i passaggi di configurazione, vedere Autenticazione del certificato da punto a sito.