Udostępnij za pośrednictwem


Generowanie i eksportowanie certyfikatów — Linux — OpenSSL

Ten artykuł ułatwia tworzenie certyfikatu głównego z podpisem własnym i generowanie plików .pem certyfikatu klienta przy użyciu OpenSSL. Jeśli zamiast tego potrzebujesz plików pfx i .cer , zapoznaj się z instrukcjami programu Windows - PowerShell .

Wymagania wstępne

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

Certyfikat root 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.

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

Certyfikaty klienta

Uwaga

Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania opisany w tej procedurze wymaga bardzo dużego zaufania do aplikacji i niesie ze sobą ryzyko, które nie występuje w innych przepływach. Tego przepływu należy używać tylko wtedy, gdy inne bezpieczniejsze przepływy, takie jak tożsamości zarządzane, nie są opłacalne.

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 usługi VPN Gateway, zobacz Uwierzytelnianie certyfikatu typu punkt-lokacja.