証明書の生成とエクスポート - Linux (strongSwan)

VPN Gateway ポイント対サイト 接続では、認証に証明書を使用できます。 この記事では、strongSwan を使用した自己署名ルート証明書の作成方法とクライアント証明書の生成方法について説明します。 PowerShell または MakeCert を使用することもできます。

接続するには、各クライアントにローカルにインストールされたクライアント証明書が必要です。 さらに、ルート証明書の公開キー情報を 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}"

次のステップ

ポイント対サイト構成を継続して、VPN クライアント構成ファイルを作成してインストールします - Linux