Generera och exportera certifikat – Linux – OpenSSL

VPN Gateway-anslutningar (punkt-till-plats) (P2S) kan konfigureras för att använda certifikatautentisering. Den offentliga rotcertifikatnyckeln laddas upp till Azure och varje VPN-klient måste ha rätt certifikatfiler installerade lokalt för att kunna ansluta. Den här artikeln hjälper dig att skapa ett självsignerat rotcertifikat och generera klientcertifikat med OpenSSL. Mer information finns i Punkt-till-plats-konfiguration – certifikatautentisering.

Förutsättningar

Om du vill använda den här artikeln måste du ha en dator som kör OpenSSL.

Självsignerat rotcertifikat

Det här avsnittet hjälper dig att generera ett självsignerat rotcertifikat. När du har genererat certifikatet exporterar du den offentliga nyckelfilen för rotcertifikatet.

  1. I följande exempel kan du generera det självsignerade rotcertifikatet.

    openssl genrsa -out caKey.pem 2048
    openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
    
  2. Skriv ut självsignerade offentliga rotcertifikatdata i base64-format. Det här är det format som stöds av Azure. Ladda upp det här certifikatet till Azure som en del av dina P2S-konfigurationssteg .

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

Klientcertifikat

I det här avsnittet genererar du användarcertifikatet (klientcertifikatet). Certifikatfiler genereras i den lokala katalogen där du kör kommandona. Du kan använda samma klientcertifikat på varje klientdator eller generera certifikat som är specifika för varje klient. Det är viktigt att klientcertifikatet signeras av rotcertifikatet.

  1. Använd följande exempel för att generera ett klientcertifikat.

    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. Använd följande exempel för att verifiera klientcertifikatet.

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

Nästa steg

Information om hur du fortsätter konfigurationsstegen finns i Punkt-till-plats-certifikatautentisering.