Zertifikate generieren und exportieren – Linux – OpenSSL

VPN-Gateway-Point-to-Site-Verbindungen (P2S) können für die Verwendung der Zertifikatauthentifizierung konfiguriert werden. Der öffentliche Stammzertifikatschlüssel wird in Azure hochgeladen, und jeder VPN-Client muss die entsprechenden Zertifikatdateien lokal installiert haben, um eine Verbindung herzustellen. Dieser Artikel hilft Ihnen, ein selbstsigniertes Stammzertifikat zu erstellen und Clientzertifikate mit OpenSSL zu generieren. Weitere Informationen finden Sie unter Point-to-Site-Konfiguration – Zertifikatauthentifizierung.

Voraussetzungen

Um diesen Artikel verwenden zu können, müssen Sie über einen Computer verfügen, auf dem OpenSSL ausgeführt wird.

Selbstsigniertes Stammzertifikat

In diesem Abschnitt können Sie ein selbstsigniertes Stammzertifikat generieren. Nachdem Sie das Zertifikat generiert haben, exportieren Sie die öffentliche Schlüsseldatendatei des Stammzertifikats.

  1. Im folgenden Beispiel können Sie das selbstsignierte Stammzertifikat generieren.

    openssl genrsa -out caKey.pem 2048
    openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
    
  2. Drucken sie die selbstsignierten öffentlichen Stammzertifikatdaten im Base64-Format. Dies ist das Format, das von Azure unterstützt wird. Laden Sie dieses Zertifikat als Teil Ihrer P2S-Konfigurationsschritte auf Azure hoch.

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

Clientzertifikate

In diesem Abschnitt generieren Sie das Benutzerzertifikat (Clientzertifikat). Zertifikatdateien werden im lokalen Verzeichnis generiert, in dem Sie die Befehle ausführen. Sie können dasselbe Clientzertifikat auf jedem Clientcomputer verwenden oder Zertifikate generieren, die für jeden Client spezifisch sind. Es ist entscheidend, dass das Clientzertifikat vom Stammzertifikat signiert ist.

  1. Verwenden Sie die folgenden Beispiele, um ein Clientzertifikat zu generieren.

    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. Verwenden Sie das folgende Beispiel, um das Clientzertifikat zu überprüfen.

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

Nächste Schritte

Informationen zum Fortsetzen der Konfigurationsschritte finden Sie unter Point-to-Site-Zertifikatauthentifizierung.