証明書の生成とエクスポート - Linux (strongSwan)
この記事では、strongSwan を使用した自己署名ルート証明書の作成方法とクライアント証明書の生成方法について説明します。 この演習の手順は、証明書 .pem ファイルを作成するためのものです。 代わりに .pfx ファイルと .cer ファイルが必要な場合は、Windows- PowerShell の手順を参照してください。
ポイント対サイト接続の場合、各 VPN クライアントが接続するにはクライアント証明書がローカルにインストールされている必要があります。 さらに、ルート証明書の公開キー情報を Azure にアップロードする必要があります。 詳細については、「ポイント対サイト構成 - 証明書認証」を参照してください。
strongSwan のインストール
次の手順は、strongSwan のインストールに役立ちます。
コマンドを指定するときに、次の構成が使用されました。
- コンピューター:Ubuntu Server 18.04
- 依存関係: strongSwan
次のコマンドを使用して、必要な strongSwan 構成をインストールします。
sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0
Linux CLI 命令 (strongSwan)
次の手順は、Linux CLI (strongSwan) を使用して証明書を生成およびエクスポートするのに役立ちます。 詳細については、Azure CLI をインストールするためのその他の手順に関する記事を参照してください。
キーと証明書を生成します。
ipsec pki --gen --outform pem > caKey.pem
ipsec pki --self --in caKey.pem --dn "CN=VPN CA" --ca --outform pem > caCert.pem
CA 証明書 を base64 形式で印刷します。 これは Azure でサポートされている形式です。 この証明書は、P2S 構成手順の一部として Azure にアップロードします。
openssl x509 -in caCert.pem -outform der | base64 -w0 ; echo
ユーザー証明書を生成します。
export PASSWORD="password"
export USERNAME=$(hostnamectl --static)
ipsec pki --gen --outform pem > "${USERNAME}Key.pem"
ipsec pki --pub --in "${USERNAME}Key.pem" | ipsec pki --issue --cacert caCert.pem --cakey caKey.pem --dn "CN=${USERNAME}" --san "${USERNAME}" --flag clientAuth --outform pem > "${USERNAME}Cert.pem"
ユーザー証明書を収納している p12 バンドルを生成します。 このバンドルは、クライアント構成ファイルと連携する場合に、次の手順で使用されます。
openssl pkcs12 -in "${USERNAME}Cert.pem" -inkey "${USERNAME}Key.pem" -certfile caCert.pem -export -out "${USERNAME}.p12" -password "pass:${PASSWORD}"
次のステップ
引き続きポイント対サイト構成を使用します。 「P2S VPN クライアントの構成 - 証明書認証 - Linux」を参照してください。