为 Azure 虚拟 WAN 配置 OpenVPN 客户端

本文帮助你配置 OpenVPN ® 协议客户端。 还可以通过 OpenVPN 协议使用 Azure VPN 客户端进行连接。 有关详细信息,请参阅为 P2S OpenVPN 连接配置 VPN 客户端

准备阶段

创建用户 VPN(点到站点)配置。 请确保选择“OpenVPN”作为隧道类型。 有关步骤,请参阅为 Azure 虚拟 WAN 创建 P2S 配置

Windows 客户端

  1. 从官方 OpenVPN 网站下载并安装 OpenVPN 客户端(版本 2.4 或更高版本)。

  2. 找到生成并下载到计算机的 VPN 客户端配置文件配置包。 解压缩该包。 转到 OpenVPN 文件夹,使用记事本打开 vpnconfig.ovpn 配置文件。

  3. 接下来,找到创建的子证书。 如果没有该证书,请使用以下链接之一来执行导出证书的步骤。 在下一部分需要用到该证书信息。

  4. 在子证书中,从 .pfx 中提取私钥和 base64 指纹。 有多种方法可实现此操作。 其中一种方法是在计算机上使用 OpenSSL。 profileinfo.txt 文件包含 CA 和客户端证书的私钥与指纹。 请务必使用客户端证书的指纹。

    openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"
    
  5. 切换到在记事本中打开的 vpnconfig.ovpn 文件。 填充 <cert></cert> 之间的部分,并获取 $CLIENT_CERTIFICATE$INTERMEDIATE_CERTIFICATE$ROOT_CERTIFICATE 的值,如以下示例所示。

       # P2S client certificate
       # please fill this field with a PEM formatted cert
       <cert>
       $CLIENT_CERTIFICATE
       $INTERMEDIATE_CERTIFICATE (optional)
       $ROOT_CERTIFICATE
       </cert>
    
    • 在记事本中打开上一步骤的 profileinfo.txt。 可通过查看 subject= 行来识别每个证书。 例如,如果子证书称为 P2SChildCert,则客户端证书将位于 subject=CN = P2SChildCert 属性之后。
    • 对于链中的每个证书,复制文本“-----BEGIN CERTIFICATE-----”与“-----END CERTIFICATE-----”之间的文本(包括这两行)。
    • 只有在 profileinfo.txt 文件中具有中间证书时,才包括 $INTERMEDIATE_CERTIFICATE 值。
  6. 在记事本中打开 profileinfo.txt。 若要获取私钥,请选择并复制“-----BEGIN PRIVATE KEY-----”与“-----END PRIVATE KEY-----”之间的文本(包括这两行)。

  7. 返回到记事本中的 vpnconfig.ovpn 文件,并找到此节。 粘贴私钥,替换 <key></key> 之间的所有内容。

    # P2S client root certificate private key
    # please fill this field with a PEM formatted key
    <key>
    $PRIVATEKEY
    </key>
    
  8. 如果使用的是 2.6 版本的 OpenVPN 客户端,请将“disable-dco”选项添加到配置文件。 此选项似乎无法向后兼容以前的版本,因此它应仅添加到 OpenVPN 客户端版本 2.6 中。

  9. 请勿更改任何其他字段。 使用客户端输入中的已填充的配置连接到 VPN。

  10. 将 vpnconfig.ovpn 文件复制到 C:\Program Files\OpenVPN\config 文件夹。

  11. 右键单击系统托盘中的 OpenVPN 图标,然后单击“连接”。

macOS 客户端

重要

只有 MacOS 10.13 及更高版本支持 OpenVPN 协议。

注意

尚不支持 OpenVPN 客户端版本 2.6。

  1. 下载并安装 OpenVPN 客户端,如 TunnelBlick

  2. 如果尚未这样做,请从 Azure 门户下载 VPN 客户端配置文件包。

  3. 解压缩该配置文件。 在某个文本编辑器中打开 OpenVPN 文件夹中的 vpnconfig.ovpn 配置文件。

  4. 使用 base64 中的 P2S 客户端证书公钥填写 P2S 客户端证书部分。 在 PEM 格式的证书中,可以打开 .cer 文件并在证书标头之间复制 base64 密钥。

  5. 使用 base64 中的 P2S 客户端证书私钥填写私钥部分。 有关如何提取私钥的信息,请参阅 OpenVPN 网站上的导出私钥

  6. 请勿更改任何其他字段。 使用客户端输入中的已填充的配置连接到 VPN。

  7. 双击配置文件以在 Tunnelblick 中创建配置文件。

  8. 启动应用程序文件夹中的 Tunnelblick。

  9. 单击系统托盘中的 Tunnelblick 图标,然后单击“连接”。

Linux 客户端

注意

尚不支持 OpenVPN 客户端版本 2.6。

  1. 打开新的终端会话。 可以同时按“Ctrl + Alt + T”打开新会话。

  2. 输入以下命令以安装所需的组件:

    sudo apt-get install openvpn
    sudo apt-get -y install network-manager-openvpn
    sudo service network-manager restart
    
  3. 下载网关的 VPN 配置文件。 可以通过 Azure 门户中的“点到站点配置”选项卡完成此操作。

  4. 导出创建的 P2S 客户端证书,并将其上传到网关上的 P2S 配置。 有关说明,请参阅虚拟 WAN 点到站点

  5. 从 .pfx 中提取私钥和 base64 指纹。 有多种方法可实现此操作。 其中一种方法是在计算机上使用 OpenSSL。

    openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"
    

    profileinfo.txt 文件将包含 CA 和客户端证书的私钥与指纹。 请务必使用客户端证书的指纹。

  6. 在文本编辑器中打开 profileinfo.txt。 若要获取客户端(子)证书的指纹,请选择并复制子证书的“-----BEGIN CERTIFICATE-----”与“-----END CERTIFICATE-----”之间的文本(包括这两行)。 查看 subject=/ 行可以识别子证书。

  7. 打开 vpnconfig.ovpn 文件并找到下面所示的节。 替换“cert”与“/cert”之间的所有内容。

    # P2S client certificate
    # please fill this field with a PEM formatted cert
    <cert>
    $CLIENTCERTIFICATE
    </cert>
    
  8. 在文本编辑器中打开 profileinfo.txt。 若要获取私钥,请选择并复制“-----BEGIN PRIVATE KEY-----”与“-----END PRIVATE KEY-----”之间的文本(包括这两行)。

  9. 在文本编辑器中打开 vpnconfig.ovpn 文件,并找到此节。 粘贴私钥,替换“key”与“/key”之间的所有内容。

    # P2S client root certificate private key
    # please fill this field with a PEM formatted key
    <key>
    $PRIVATEKEY
    </key>
    
  10. 请勿更改任何其他字段。 使用客户端输入中的已填充的配置连接到 VPN。

  11. 若要使用命令行进行连接,请键入以下命令:

    sudo openvpn --config <name and path of your VPN profile file>&
    
  12. 要使用 GUI 进行连接,请转到系统设置。

  13. 单击 + 添加新的 VPN 连接。

  14. 在“添加 VPN”下,选择“从文件导入…”。

  15. 浏览到配置文件,然后双击或选择“打开”。

  16. 单击“添加 VPN”窗口上的“添加”

    屏幕截图显示了“添加 VPN”页上的“从文件导入”。

  17. 可以通过在“网络设置”页面上或在系统托盘中的网络图标下打开 VPN 进行连接

后续步骤

有关用户 VPN(点到站点)的详细信息,请参阅创建用户 VPN 连接

“OpenVPN”是 OpenVPN Inc. 的商标。