为 P2S 证书身份验证连接配置 OpenVPN 客户端 - Linux
本文可帮助你在 Linux 中通过 OpenVPN 客户端使用 VPN 网关点到站点 (P2S) 和证书身份验证连接到 Azure 虚拟网络 (VNet)。
请确认你阅读的是正确的文章。 下表显示了 Azure VPN 网关 P2S VPN 客户端可用的配置文章。 步骤因身份验证类型、隧道类型和客户端 OS 而有所不同。
身份验证 | 隧道类型 | 客户端 OS | VPN 客户端 |
---|---|---|---|
证书 | |||
IKEv2、SSTP | Windows | 本机 VPN 客户端 | |
IKEv2 | macOS | 本机 VPN 客户端 | |
IKEv2 | Linux | strongSwan | |
OpenVPN | Windows | Azure VPN 客户端 OpenVPN 客户端版本 2.x OpenVPN 客户端版本 3.x |
|
OpenVPN | macOS | OpenVPN 客户端 | |
OpenVPN | Linux | Azure VPN 客户端 OpenVPN 客户端 |
|
Microsoft Entra ID | |||
OpenVPN | Windows | Azure VPN 客户端 |
本文假定你已执行以下先决条件:
- 你已创建并配置 VPN 网关,可用于点到站点证书身份验证和 OpenVPN 隧道类型。 请参阅为 P2S VPN 网关连接配置服务器设置 - 证书身份验证以获取步骤。
- 你已生成并下载了 VPN 客户端配置文件。 有关步骤,请参阅“生成 VPN 客户端配置文件”。
- 你可以生成客户端证书,也可以获取进行身份验证所需的相应客户端证书。
若要使用 OpenVPN 客户端通过证书身份验证连接到 Azure,每个连接客户端都需要以下项:
- 必须在每台客户端上安装和配置 OpenVPN 客户端软件。
- 客户端必须在本地安装正确的证书。
本文的工作流如下:
- 安装 OpenVPN 客户端。
- 查看生成的 VPN 客户端配置文件包中包含的 VPN 客户端配置文件。
- 配置 OpenVPN 客户端。
- 连接到 Azure。
对于证书身份验证,必须在每台客户端计算机上安装客户端证书。 要使用的客户端证书必须使用私钥导出,并且必须包含证书路径中的所有证书。 此外,对于某些配置,还需要安装根证书信息。
本文中的 OpenVPN 客户端使用以 .pfx 格式导出的证书。 可以使用 Windows 指令轻松地将客户端证书导出为这种格式。 请参阅导出客户端证书 - pfx。 如果没有 Windows 计算机,作为解决方法,可以使用小型 Windows VM 将证书导出为所需的 .pfx 格式。 目前,我们提供的 OpenSSL Linux 指令只能生成 .pem 格式。
本部分将帮助你为使用 OpenVPN 隧道类型的证书身份验证配置 Linux 客户端。 若要连接到 Azure,请下载 OpenVPN 客户端并配置连接配置文件。
注意
尚不支持 OpenVPN 客户端版本 2.6。
打开新的终端会话。 可以同时按“Ctrl + Alt + T”打开新会话。
输入以下命令以安装所需的组件:
sudo apt-get install openvpn sudo apt-get -y install network-manager-openvpn sudo service network-manager restart
接下来,转到 VPN 客户端配置文件文件夹并解压缩以查看这些文件。
导出创建的 P2S 客户端证书,并将其上传到网关上的 P2S 配置。 有关步骤,请参阅 VPN 网关点到站点。
从 .pfx 中提取私钥和 base64 指纹。 有多种方法可实现此操作。 其中一种方法是在计算机上使用 OpenSSL。
openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"
profileinfo.txt 文件包含 CA 的私钥与指纹以及客户端证书。 请务必使用客户端证书的指纹。
在文本编辑器中打开 profileinfo.txt。 若要获取客户端(子)证书的指纹,请选择并复制子证书的“-----BEGIN CERTIFICATE-----”与“-----END CERTIFICATE-----”之间的文本(包括这两行)。 查看 subject=/ 行可以识别子证书。
打开 vpnconfig.ovpn 文件并找到以下示例中的部分。 替换“cert”与“/cert”之间的所有内容。
# P2S client certificate # please fill this field with a PEM formatted cert <cert> $CLIENTCERTIFICATE </cert>
在文本编辑器中打开 profileinfo.txt。 若要获取私钥,请选择并复制“-----BEGIN PRIVATE KEY-----”与“-----END PRIVATE KEY-----”之间的文本(包括这两行)。
在文本编辑器中打开 vpnconfig.ovpn 文件,并找到此节。 粘贴私钥,替换“key”与“/key”之间的所有内容。
# P2S client root certificate private key # please fill this field with a PEM formatted key <key> $PRIVATEKEY </key>
请勿更改任何其他字段。 使用客户端输入中的已填充的配置连接到 VPN。
若要使用命令行进行连接,请键入以下命令:
sudo openvpn --config <name and path of your VPN profile file>&
若要使用命令行断开连接,请键入以下命令:
sudo pkill openvpn
要使用 GUI 进行连接,请转到系统设置。
选择 + 添加新的 VPN 连接。
在“添加 VPN”下,选择“从文件导入…”。
浏览到配置文件,然后双击或选择“打开”。
选择“添加 VPN”窗口上的“添加”。
可以通过在“网络设置”页面上或在系统托盘中的网络图标下打开 VPN 进行连接。
有关其他步骤,请返回到 P2S Azure 门户一文。