Certificaten genereren en exporteren - Linux - OpenSSL

P2S-verbindingen (Punt-naar-site) van VPN Gateway kunnen worden geconfigureerd voor het gebruik van certificaatverificatie. De openbare sleutel van het basiscertificaat wordt geüpload naar Azure en elke VPN-client moet de juiste certificaatbestanden lokaal hebben geïnstalleerd om verbinding te kunnen maken. Dit artikel helpt u bij het maken van een zelfondertekend basiscertificaat en het genereren van clientcertificaten met behulp van OpenSSL. Zie Punt-naar-site-configuratie - certificaatverificatie voor meer informatie.

Vereisten

Als u dit artikel wilt gebruiken, moet u een computer met OpenSSL hebben.

Zelfondertekend basiscertificaat

Deze sectie helpt u bij het genereren van een zelfondertekend basiscertificaat. Nadat u het certificaat hebt gegenereerd, exporteert u het openbare-sleutelgegevensbestand van het basiscertificaat.

  1. In het volgende voorbeeld kunt u het zelfondertekende basiscertificaat genereren.

    openssl genrsa -out caKey.pem 2048
    openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
    
  2. Druk de zelfondertekende openbare basiscertificaatgegevens af in basis64-indeling. Dit is de indeling die wordt ondersteund door Azure. Upload dit certificaat naar Azure als onderdeel van uw P2S-configuratiestappen .

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

Clientcertificaten

In deze sectie genereert u het gebruikerscertificaat (clientcertificaat). Certificaatbestanden worden gegenereerd in de lokale map waarin u de opdrachten uitvoert. U kunt hetzelfde clientcertificaat op elke clientcomputer gebruiken of certificaten genereren die specifiek zijn voor elke client. Het is van cruciaal belang dat het clientcertificaat is ondertekend door het basiscertificaat.

  1. Gebruik de volgende voorbeelden om een clientcertificaat te genereren.

    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. Gebruik het volgende voorbeeld om het clientcertificaat te controleren.

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

Volgende stappen

Zie Punt-naar-site-certificaatverificatie om door te gaan met de configuratiestappen.