Generowanie i eksportowanie certyfikatów — Linux — OpenSSL

Połączenia typu punkt-lokacja (P2S) bramy sieci VPN można skonfigurować do używania uwierzytelniania certyfikatu. Klucz publiczny certyfikatu głównego jest przekazywany na platformę Azure, a każdy klient sieci VPN musi mieć zainstalowane lokalnie odpowiednie pliki certyfikatów w celu nawiązania połączenia. Ten artykuł pomaga utworzyć certyfikat główny z podpisem własnym i wygenerować certyfikaty klienta przy użyciu biblioteki OpenSSL. Aby uzyskać więcej informacji, zobacz Konfiguracja punkt-lokacja — uwierzytelnianie certyfikatu.

Wymagania wstępne

Aby użyć tego artykułu, musisz mieć komputer z systemem OpenSSL.

Certyfikat główny z podpisem własnym

Ta sekcja ułatwia wygenerowanie certyfikatu głównego z podpisem własnym. Po wygenerowaniu certyfikatu należy wyeksportować plik danych klucza publicznego certyfikatu głównego.

  1. Poniższy przykład ułatwia wygenerowanie certyfikatu głównego z podpisem własnym.

    openssl genrsa -out caKey.pem 2048
    openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
    
  2. Wydrukuj dane publiczne certyfikatu głównego z podpisem własnym w formacie base64. Jest to format obsługiwany przez platformę Azure. Przekaż ten certyfikat na platformę Azure w ramach kroków konfiguracji P2S.

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

Certyfikaty klienta

W tej sekcji wygenerujesz certyfikat użytkownika (certyfikat klienta). Pliki certyfikatów są generowane w katalogu lokalnym, w którym są uruchamiane polecenia. Można użyć tego samego certyfikatu klienta na każdym komputerze klienckim lub wygenerować certyfikaty specyficzne dla każdego klienta. Ważne jest, aby certyfikat klienta był podpisany przez certyfikat główny.

  1. Aby wygenerować certyfikat klienta, użyj poniższych przykładów.

    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. Aby zweryfikować certyfikat klienta, użyj poniższego przykładu.

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

Następne kroki

Aby kontynuować kroki konfiguracji, zobacz Uwierzytelnianie certyfikatu typu punkt-lokacja.