Generare ed esportare i certificati - Linux - OpenSSL

Questo articolo indica come creare un certificato radice autofirmato e generare file .pem per il certificato client usando OpenSSL. Se invece sono necessari file .pfx e .cer, vedere le istruzioni Windows- PowerShell.

Prerequisiti

Per usare questo articolo, è necessario disporre di un computer che esegue OpenSSL.

Certificato radice autofirmato

Questa sezione illustra la generazione di un certificato radice autofirmato. Dopo aver generato il certificato, è possibile esportare il file di dati della chiave pubblica del certificato radice.

  1. Usare l'esempio seguente per 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
    
  2. Stampare i dati pubblici del certificato radice autofirmato in formato base64. Questo è il formato supportato da Azure. Caricare questo certificato in Azure nell'ambito dei passaggi della configurazione della connessione da punto a sito.

    openssl x509 -in caCert.pem -outform der | base64 -w0 && echo
    

Certificati client

In questa sezione, si genera il certificato utente (certificato client). I file del certificano vengono generati nella directory locale in cui vengono eseguiti i comandi. È possibile usare lo stesso certificato clienti su ogni computer client o generare certificati specifici per ogni client. È fondamentale che il certificato client sia firmato dal certificato radice.

  1. Per generare un certificato clienti, 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")
    
  2. Per verificare il certificato client, usare l'esempio seguente.

    openssl verify -CAfile caCert.pem caCert.pem "${USERNAME}Cert.pem"
    

Passaggi successivi

Per continuare con i passaggi di configurazione, vedere l'autenticazione del certificato da punto a sito.