Generování a export certifikátů – Linux – OpenSSL

Připojení typu point-to-site (P2S) služby VPN Gateway je možné nakonfigurovat tak, aby používala ověřování certifikátů. Veřejný klíč kořenového certifikátu se nahraje do Azure a každý klient VPN musí mít pro připojení nainstalované příslušné soubory certifikátů místně. Tento článek vám pomůže vytvořit kořenový certifikát podepsaný svým držitelem a generovat klientské certifikáty pomocí OpenSSL. Další informace najdete v tématu Konfigurace typu Point-to-Site – ověřování certifikátů.

Požadavky

Chcete-li použít tento článek, musíte mít počítač se spuštěnou aplikací OpenSSL.

Kořenový certifikát podepsaný svým držitelem

Tato část vám pomůže vygenerovat kořenový certifikát podepsaný svým držitelem. Po vygenerování certifikátu exportujete datový soubor veřejného klíče kořenového certifikátu.

  1. Následující příklad vám pomůže vygenerovat kořenový certifikát podepsaný svým držitelem.

    openssl genrsa -out caKey.pem 2048
    openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
    
  2. Vytiskněte veřejná data kořenového certifikátu podepsaného svým držitelem ve formátu base64. Jedná se o formát, který Azure podporuje. Tento certifikát nahrajte do Azure v rámci kroků konfigurace P2S.

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

Klientské certifikáty

V této části vygenerujete uživatelský certifikát (klientský certifikát). Soubory certifikátů se generují v místním adresáři, ve kterém příkazy spouštíte. Stejný klientský certifikát můžete použít na každém klientském počítači nebo vygenerovat certifikáty specifické pro každého klienta. Je důležité, aby certifikát klienta byl podepsaný kořenovým certifikátem.

  1. K vygenerování klientského certifikátu použijte následující příklady.

    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. K ověření klientského certifikátu použijte následující příklad.

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

Další kroky

Pokud chcete pokračovat v postupu konfigurace, přečtěte si téma Ověřování certifikátů typu Point-to-Site.