証明書の生成とエクスポート - Linux - OpenSSL
この記事は、OpenSSL を使用して自己署名ルート証明書を作成し、さらにクライアント証明書の .pem ファイルを生成するのに役立ちます。 代わりに .pfx ファイルと .cer ファイルが必要な場合は、Windows- PowerShell の指示を確認してください。
前提条件
この記事を使用するには、OpenSSL を実行しているコンピューターが必要です。
自己署名ルート証明書
このセクションは、自己署名ルート証明書の生成に役立ちます。 証明書を生成したら、ルート証明書の公開キー データ ファイルをエクスポートします。
次の例は、自己署名ルート証明書を生成するのに役立ちます。
openssl genrsa -out caKey.pem 2048 openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
自己署名ルート証明書のパブリック データを base64 形式で出力します。 これは Azure でサポートされている形式です。 P2S 構成手順の一環として、この証明書を Azure にアップロードします。
openssl x509 -in caCert.pem -outform der | base64 -w0 && echo
[クライアント証明書]
このセクションでは、ユーザー証明書 (クライアント証明書) を生成します。 証明書ファイルは、コマンドを実行するローカル ディレクトリ内に生成されます。 各クライアント コンピューターで同じクライアント証明書を使用することも、各クライアントに固有の証明書を生成することもできます。 重要なのは、クライアント証明書がルート証明書によって署名されていることです。
クライアント証明書を生成するには、次の例を使用します。
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")
クライアント証明書を確認するには、次の例を使用します。
openssl verify -CAfile caCert.pem caCert.pem "${USERNAME}Cert.pem"
次のステップ
構成手順を続行するには、ポイント対サイト - 証明書認証に関するセクションを参照してください。