您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

生成并安装用于 P2S 证书身份验证的 VPN 客户端配置文件

使用点到站点和证书身份验证连接到 Azure VNet 时,你使用操作系统上原生安装的用来进行连接的 VPN 客户端。 VPN 客户端的所有必需配置设置都包含在 VPN 客户端 zip 配置文件中。 zip 文件中的设置可帮助你轻松地为 Windows、Mac IKEv2 VPN 或 Linux 配置 VPN 客户端。

你生成的 VPN 客户端配置文件特定于虚拟网络的 P2S VPN 网关配置。 如果在生成文件后对点到站点 VPN 配置进行了任何更改(例如,更改了 VPN 协议类型或身份验证类型),则需生成新的 VPN 客户端配置文件并将新配置应用于要连接的所有 VPN 客户端。

重要

从 2018 年 7 月 1 日开始,Azure VPN 网关将不再支持 TLS 1.0 和 1.1。 VPN 网关将仅支持 TLS 1.2。 仅点到站点连接会受到影响;站点到站点连接不受影响。 如果在 Windows 10 客户端上点到站点 VPN 使用的是 TLS,则无需进行任何操作。 如果在 Windows 7 和 Windows 8 客户端上使用 TLS 建立点到站点连接,请参阅 VPN 网关常见问题解答,了解更新说明。

生成 VPN 客户端配置文件

可使用 PowerShell 或使用 Azure 门户生成客户端配置文件。 两种方法之一都会返回相同的 zip 文件。 解压缩该文件,查看以下文件夹:

  • WindowsAmd64WindowsX86:分别包含 Windows 32 位和 64 位安装程序包。 WindowsAmd64 安装程序包适用于所有受支持的 64 位 Windows 客户端,而不仅仅是 Amd。
  • Generic:包含用于创建自己的 VPN 客户端配置的常规信息。 如果网关上配置了 IKEv2 或 SSTP+IKEv2,会提供 Generic 文件夹。 如果仅配置了 SSTP,则不会提供 Generic 文件夹。

使用 Azure 门户生成文件

  1. 在 Azure 门户中,导航到要连接到的虚拟网络的虚拟网络网关。

  2. 在虚拟网络网关页上,选择“点到站点配置”以打开“点到站点配置”页。

  3. 在“点到站点配置”页的顶部,选择“下载 VPN 客户端”。 这不会下载 VPN 客户端软件,它将生成用来配置 VPN 客户端的配置包。 需要几分钟才能生成客户端配置包。 在此期间,在包生成前,可能不会显示任何指示。

    下载 VPN 客户端配置包。

  4. 生成配置包后,浏览器会指出有一个客户端 zip 配置文件可用。 其名称与网关名称相同。 解压缩该文件,查看文件夹。

使用 PowerShell 生成文件

  1. 生成 VPN 客户端配置文件时,“-AuthenticationMethod”的值为“EapTls”。 使用以下命令生成 VPN 客户端配置文件:

    $profile=New-AzVpnClientConfiguration -ResourceGroupName "TestRG" -Name "VNet1GW" -AuthenticationMethod "EapTls"
    
    $profile.VPNProfileSASUrl
    
  2. 将 URL 复制到浏览器,下载 zip 文件,然后解压缩该文件,查看其中的文件夹。

Windows

只要版本与 Windows 客户端的体系结构匹配,就可以在每台客户端计算机上使用相同的 VPN 客户端配置包。 有关支持的客户端操作系统列表,请参阅 VPN 网关常见问题解答中的“点到站点”部分。

备注

在要从其进行连接的 Windows 客户端计算机上,必须拥有管理员权限。

安装配置文件

  1. 根据 Windows 计算机的体系结构选择 VPN 客户端配置文件。 对于 64 位处理器体系结构,请选择“VpnClientSetupAmd64”安装程序包。 对于 32 位处理器体系结构,请选择“VpnClientSetupX86”安装程序包。
  2. 双击所需的包进行安装。 如果显示 SmartScreen 弹出窗口,请依次单击“更多信息”、“仍要运行”。

验证并连接

  1. 验证客户端计算机上是否已安装客户端证书。 使用本机 Azure 证书身份验证类型时,客户端证书是身份验证必需的。 若要查看客户端证书,请打开“管理用户证书”。 客户端证书安装在“Current User\Personal\Certificates”中。
  2. 若要进行连接,请导航到“网络设置”,然后单击“VPN”。 VPN 连接显示所连接到的虚拟网络的名称。

Mac (macOS)

为了连接到 Azure,必须手动配置本机 IKEv2 VPN 客户端。 Azure 不提供 mobileconfig 文件。 可以在 Generic 文件夹中找到配置所需的所有信息。

如果在下载中没有看到 Generic 文件夹,则可能 IKEv2 未选作隧道类型。 请注意,VPN 网关基本 SKU 不支持 IKEv2。 在 VPN 网关上,验证该 SKU 不是“基本”类别。 然后,选择 IKEv2 并再次生成 zip 文件以检索 Generic 文件夹。

Generic 文件夹包含以下文件:

  • VpnSettings.xml:包含服务器地址和隧道类型等重要设置。
  • VpnServerRoot.cer:包含在 P2S 连接设置过程中验证 Azure VPN 网关所需的根证书。

使用以下步骤在 Mac 中配置用于证书身份验证的本机 VPN 客户端。 必须在要连接到 Azure 的每一台 Mac 上完成这些步骤。

导入根证书文件

  1. 将根证书文件复制到 Mac。 双击该证书。 证书将自动安装,或者你将看到“添加证书”页面。

  2. 在“添加证书”页面上,从下拉列表中选择“登录名” 。

    该屏幕截图显示了已选中“登录名”的“添加证书”页面。

  3. 单击“添加”以导入文件。

    该屏幕截图显示已选中“添加”的“添加证书”页面。

验证证书安装

验证是否安装了客户端和根证书。 客户端证书可用于身份验证,且是必需的。 有关如何安装客户端证书的信息,请参阅安装客户端证书

  1. 打开 Keychain Access 应用程序。

  2. 导航到“证书”选项卡。

  3. 验证是否安装了客户端和根证书。

    该屏幕截图显示安装了证书的 Keychain Access。

创建 VPN 客户端配置文件

  1. 导航到“系统首选项”->“网络”。 在“网络”页面上,选择“+”来为到 Azure 虚拟网络的 P2S 连接创建新的 VPN 客户端连接配置文件。

  2. 对于“接口”,从下拉列表中选择 VPN 。

    该屏幕截图显示“网络”窗口,其中包括用于选择接口的选项并且已选中 VPN。

  3. 对于“VPN 类型”,从下拉列表中选择 IKEv2 。 在“服务名称”字段中,为配置文件指定易记名称。

    屏幕截图显示“网络”窗口,其中包括用于选择接口、选择 VPN 类型和输入服务名称的选项。

  4. 选择“创建”以创建 VPN 客户端连接配置文件。

  5. 在 Generic 文件夹中,使用文本编辑器打开 VpnSettings.xml 文件,然后复制 VpnServer 标记值 。

    屏幕截图显示了打开的 VpnSettings.xml 文件,其中突出显示了 VpnServer 标记。

  6. 将 VpnServer 标记值粘贴到配置文件的“服务器地址”和“远程 ID”字段中 。

    屏幕截图显示了“网络”窗口,其中粘贴了值。

  7. 配置身份验证设置。 有两组说明。 选择与 OS 版本相对应的说明。

    Catalina:

    • 对于“身份验证设置”,选择“无” 。

    • 选择“证书”,单击“选择”并选择之前安装的正确客户端证书 。 然后,单击 “确定”

      屏幕截图显示“网络”窗口,其中“身份验证设置”选择了“无”并选择了“证书”。

    Big Sur:

    • 单击“身份验证设置”,然后选择“证书” 。

      屏幕截图显示了已选择“证书”的“身份验证设置”。

    • 单击“选择”以打开“选择标识”页面 。 “选择标识”页面会显示可供选择的证书列表。 如果不确定要使用哪个证书,可以单击“显示证书”以查看各个证书的详细信息。

      屏幕截图显示了证书属性。

    • 选择适当的证书,然后选择“继续”。

      屏幕截图显示了“选择标识”,可在其中选择证书。

    • 在“身份验证设置”页面上,验证是否显示了正确的证书,然后单击“确定” 。

      屏幕截图显示可在其中选择正确证书的“选择标识”对话框。

  8. 对于 Catalina 和 Big Sur,请在“本地 ID”字段中指定证书的名称。 在此示例中,它是 P2SChildCert

    屏幕截图显示了本地 ID 值。

  9. 选择“应用”以保存所有更改。

  10. 选择“连接”以启动到 Azure 虚拟网络的 P2S 连接。

    屏幕截图显示了“连接”按钮。

  11. 建立连接后,状态显示为“已连接”,并且你可以查看从 VPN 客户端地址池中拉取的 IP 地址。

    屏幕截图显示“已连接”。

Linux (strongSwan GUI)

安装 strongSwan

以下配置用于执行下面的步骤:

  • 计算机:Ubuntu Server 18.04
  • 依赖项:strongSwan

使用以下命令安装所需的 strongSwan 配置:

sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins

使用以下命令安装 Azure 命令行接口:

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

有关如何安装 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="client"

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}"

安装和配置

以下说明是在 Ubuntu 18.0.4 上创建的。 Ubuntu 16.0.10 不支持 strongSwan GUI。 如果想要使用 Ubuntu 16.0.10,则必须使用命令行。 以下示例可能与你看到的屏幕不同,具体取决于所用的 Linux 和 strongSwan 版本。

  1. 打开 终端 并运行示例中的命令,安装 strongSwan 及其网络管理器。

    sudo apt install network-manager-strongswan
    
  2. 选择“设置”,然后选择“网络”。 选择 + 按钮创建新连接。

    屏幕截图显示“网络连接”页。

  3. 从菜单中选择“IPsec/IKEv2 (strongSwan)”,然后双击。

    屏幕截图显示“添加 VPN”页。

  4. 在“添加 VPN”页上,添加 VPN 连接的名称。

    屏幕截图显示“选择连接类型”。

  5. 打开下载的客户端配置文件包含的 Generic 文件夹中的 VpnSettings.xml 文件。 找到名为 VpnServer 的标记,并复制以“azuregateway”开头、以“.cloudapp.net”结尾的名称。

    屏幕截图显示复制数据。

  6. 在“网关”部分中,将此名称粘贴到新 VPN 连接的“地址”字段中 。 接下来,选择“证书”字段末尾的文件夹图标,浏览到 Generic 文件夹,并选择 VpnServerRoot 文件。

  7. 在连接的“客户端”部分,为“身份验证”选择“证书/私钥”。 对于“证书”和“私钥”,请选择前面创建的证书和私钥。 在“选项”中,选择“请求内部 IP 地址”。 然后选择“添加”。

    屏幕截图显示请求内部 IP 地址。

  8. 打开 连接。

    屏幕截图显示复制。

Linux (strongSwan CLI)

安装 strongSwan

以下配置用于执行下面的步骤:

  • 计算机:Ubuntu Server 18.04
  • 依赖项:strongSwan

使用以下命令安装所需的 strongSwan 配置:

sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins

使用以下命令安装 Azure 命令行接口:

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

有关如何安装 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="client"

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}"

安装和配置

  1. 从 Azure 门户下载 VPNClient 程序包。

  2. 将该文件解压缩。

  3. 从 Generic 文件夹中,将 VpnServerRoot.cer 复制或移动到 /etc/ipsec.d/cacerts 。

  4. 将 cp client.p12 复制或移动到 /etc/ipsec.d/private/ 。 此文件是 VPN 网关的客户端证书。

  5. 打开 VpnSettings.xml 文件并复制 <VpnServer> 值。 下一步骤中将使用此值。

  6. 调整以下示例中的值,然后将该示例添加到 /etc/ipsec.conf 配置。

    conn azure
          keyexchange=ikev2
          type=tunnel
          leftfirewall=yes
          left=%any
          leftauth=eap-tls
          leftid=%client # use the DNS alternative name prefixed with the %
          right= Enter the VPN Server value here# Azure VPN gateway address
          rightid=% # Enter the VPN Server value here# Azure VPN gateway FQDN with %
          rightsubnet=0.0.0.0/0
          leftsourceip=%config
          auto=add
    
  7. 将以下值添加到 /etc/ipsec.secrets。

    : P12 client.p12 'password' # key filename inside /etc/ipsec.d/private directory
    
  8. 运行以下命令:

    # ipsec restart
    # ipsec up azure
    

后续步骤

返回到你之前处理的原始文章,然后完成 P2S 配置。