生成并导出证书 - 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
(strongSwan) 的 Linux CLI 说明
以下步骤可帮助你使用 Linux CLI (strongSwan) 生成和导出证书。 有关详细信息,请参阅安装 Azure CLI 的其他说明。
生成 CA 证书。
ipsec pki --gen --outform pem > caKey.pem
ipsec pki --self --in caKey.pem --dn "CN=VPN CA" --ca --outform pem > caCert.pem
打印 base64 格式的 CA 证书。 这是 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。