你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置 S2S VPN 网关证书身份验证连接 - 预览
本文使用 Azure 门户在本地网络与虚拟网络之间创建站点到站点 (S2S) 证书身份验证 VPN 网关连接。 此配置的步骤使用托管标识、Azure Key Vault 和证书。 如果需要创建改用共享密钥的站点到站点 VPN 连接,请参阅创建 S2S VPN 连接。
先决条件
注意
基本 SKU VPN 网关上不支持站点到站点证书身份验证。
你已有一个虚拟网络和一个 VPN 网关。 如果没有,请按照创建 VPN 网关中的步骤操作,然后返回到此页面以配置站点到站点证书身份验证连接。
确保有一台兼容的 VPN 设备,并且可对其进行配置。 有关兼容的 VPN 设备和设备配置的详细信息,请参阅关于 VPN 设备。
确认 VPN 设备有一个面向外部的公共 IPv4 地址。
如果不熟悉本地网络配置中的 IP 地址范围,则需咨询能够提供此类详细信息的人员。 创建此配置时,必须指定 IP 地址范围前缀,Azure 会将该前缀路由到本地位置。 本地网络的任何子网都不得与要连接到的虚拟网络子网重叠。
创建托管标识
此配置需要托管标识。 有关托管标识的详细信息,请参阅什么是 Azure 资源托管标识? 如果已有用户分配的托管标识,则可以将其用于本练习。 否则,请使用以下步骤创建一个托管标识。
- 在 Azure 门户中,搜索并选择“托管标识”。
- 选择创建。
- 输入所需的信息。 创建名称时,请使用直观的内容。 例如,站点到站点托管或 vpngwy 托管。 需要密钥保管库配置步骤的名称。 “资源组”不必与用于 VPN 网关的资源组相同。
- 选择“查看 + 创建”。
- 值验证。 验证完成后,选择“创建”。
为 Key Vault 和托管标识启用 VPN 网关
在本部分中,将为之前创建的 Azure Key Vault 和托管标识启用网关。 有关 Azure Key Vault 的详细信息,请参阅 Azure Key Vault 概述。
- 在门户中,转到你的虚拟网络网关(VPN 网关)。
- 转到“设置 -> 配置”。 在“配置”页上,指定以下身份验证设置:
- 启用 Key Vault 访问:已启用。
- 托管标识:选择之前创建的托管标识。
- 保存设置。
创建本地网络网关
本地网络网关是代表用于路由的本地位置(站点)的特定对象。 可以为站点提供一个名称供 Azure 引用,然后指定本地 VPN 设备的 IP 地址,以便创建一个连接来连接到该设备。 此外还可指定 IP 地址前缀,以便通过 VPN 网关将其路由到 VPN 设备。 指定的地址前缀是位于本地网络的前缀。 如果之后本地网络发生了更改,或需要更改 VPN 设备的公共 IP 地址,可轻松更新这些值。
注意
本地网络网关对象部署在 Azure 中,而不是部署到本地位置。
使用以下值创建本地网络网关:
- 名称: Site1
- 资源组: TestRG1
- 位置:美国东部
配置注意事项:
- VPN 网关支持一个 FQDN 只使用一个 IPv4 地址。 如果域名解析为多个 IP 地址,VPN 网关会使用 DNS 服务器返回的第一个 IP 地址。 为了消除这种不确定性,建议你的 FQDN 始终解析为一个 IPv4 地址。 不支持 IPv6。
- VPN 网关维护一个 DNS 缓存,该缓存每 5 分钟刷新一次。 此网关仅尝试解析已断开连接的隧道的 FQDN。 重置网关也触发 FQDN 解析。
- 尽管 VPN 网关支持使用不同的 FQDN 多次连接到不同的本地网关,但所有 FQDN 都必须解析为不同的 IP 地址。
在门户中,转到“本地网络网关”,打开“创建本地网关”页。
在基本信息选项卡上,指定本地网络网关的值。
- 订阅:确保显示正确的订阅。
- 资源组:选择要使用的资源组。 可以创建新的资源组或选择已创建的资源组。
- 区域:选择此对象所在的区域。 可选择虚拟网络所在的位置,但这不是必须的。
- 名称: 指定本地网络网关对象的名称。
- 终结点:为本地 VPN 设备选择“IP 地址”或“FQDN (完全限定的域名)”作为终结点类型。
- IP 地址:如果你的 Internet 服务提供商 (ISP) 向你分配了可用于 VPN 设备的静态公共 IP 地址,那么请选择“IP 地址”选项。 填写示例所示的 IP 地址。 此地址是 Azure VPN 网关要连接的 VPN 设备的公共 IP 地址。 如果目前没有 IP 地址,可以使用示例中显示的值。 稍后必须返回来,将占位符 IP 地址替换为 VPN 设备的公共 IP 地址。 否则,Azure 无法进行连接。
- FQDN:如果你有动态公共 IP 地址,且该地址可能会在某段时间(通常由你的 ISP 决定)后发生变化,那么你可对动态 DNS 服务使用常量 DNS 名称来指向你的 VPN 设备的当前公共 IP 地址。 你的 Azure VPN 网关会解析 FQDN 来确定要连接到的公共 IP 地址。
- 地址空间:地址空间指的是此本地网络所代表的网络的地址范围。 可以添加多个地址空间范围。 请确保此处所指定的范围没有与要连接到的其他网络的范围相重叠。 Azure 会将你指定的地址范围路由到本地 VPN 设备 IP 地址。 如果需要连接到本地站点,请在此处使用自己的值,而不是示例中显示的值。
在“高级”选项卡上,可以根据需要配置 BGP 设置。
指定值后,选择页面底部的“查看 + 创建”以验证页面。
选择“创建”以创建本地网络网关对象。
Certificates
站点到站点证书身份验证体系结构依赖于入站和出站证书。
注意
不需要从同一根证书生成入站和出站证书。
出站证书
- 出站证书用于验证从 Azure 到本地站点的连接。
- 该证书存储在 Azure Key Vault 中。 配置站点到站点连接时,指定出站证书路径标识符。
- 可以使用所选的证书颁发机构创建证书,也可以创建自签名根证书。
生成出站证书时,此证书必须遵循以下准则:
- 最小密钥长度为 2048 位。
- 必须具有私钥。
- 必须具有服务器和客户端身份验证。
- 必须具有使用者名称。
入站证书
- 从本地位置连接到 Azure 时,将使用入站证书。
- 配置站点到站点连接时,将使用使用者名称值。
- 配置站点到站点连接时,会指定证书链公钥。
生成证书
在本地计算机上使用 PowerShell 生成证书。 以下步骤演示如何创建自签名根证书和叶证书(入站和出站)。 使用以下示例时,请勿在创建自签名根证书颁发机构和叶证书期间关闭 PowerShell 窗口。
创建自签名根证书
使用 New-SelfSignedCertificate cmdlet 创建自签名根证书。 有关参数的详细信息,请参阅 New-SelfSignedCertificate。
在运行 Windows 10 或更高版本或 Windows Server 2016 的计算机上,使用提升的权限打开 Windows PowerShell 控制台。
创建自签名根证书。 以下示例创建名为“VPNRootCA01”的自签名根证书,其会自动安装在“证书 - 当前用户 > 个人 > 证书”。 创建证书后,可以通过打开 certmgr.msc 或管理用户证书来查看它。
在使用此示例之前,请进行任何所需的修改。 “NotAfter”参数是可选的。 默认情况下,如果没有此参数,证书将在 1 年后过期。
$params = @{ Type = 'Custom' Subject = 'CN=VPNRootCA01' KeySpec = 'Signature' KeyExportPolicy = 'Exportable' KeyUsage = 'CertSign' KeyUsageProperty = 'Sign' KeyLength = 2048 HashAlgorithm = 'sha256' NotAfter = (Get-Date).AddMonths(120) CertStoreLocation = 'Cert:\CurrentUser\My' TextExtension = @('2.5.29.19={critical}{text}ca=1&pathlength=4') } $cert = New-SelfSignedCertificate @params
使 PowerShell 控制台保持打开状态,并继续执行后续步骤以生成叶证书。
生成叶证书
这些示例使用 New-SelfSignedCertificate cmdlet 生成出站和入站叶证书。 证书会自动安装在计算机的以下路径:证书 - 当前用户 > 个人 > 证书。
出站证书
$params = @{
Type = 'Custom'
Subject = 'CN=Outbound-certificate'
KeySpec = 'Signature'
KeyExportPolicy = 'Exportable'
KeyLength = 2048
HashAlgorithm = 'sha256'
NotAfter = (Get-Date).AddMonths(120)
CertStoreLocation = 'Cert:\CurrentUser\My'
Signer = $cert
TextExtension = @(
'2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1')
}
New-SelfSignedCertificate @params
入站证书
$params = @{
Type = 'Custom'
Subject = 'CN=Inbound-certificate'
KeySpec = 'Signature'
KeyExportPolicy = 'Exportable'
KeyLength = 2048
HashAlgorithm = 'sha256'
NotAfter = (Get-Date).AddMonths(120)
CertStoreLocation = 'Cert:\CurrentUser\My'
Signer = $cert
TextExtension = @(
'2.5.29.37={text}1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.1')
}
New-SelfSignedCertificate @params
出站证书 - 导出私钥数据
将出站证书信息(带私钥)导出到 .pfx 或 .pem 文件。 后面的步骤会将此证书信息安全地上传到 Azure Key Vault。 若要使用 Windows 导出到 .pfx,请使用以下步骤:
要获取证书 .cer 文件,请打开“管理用户证书”。
找到出站证书(通常位于“证书 - 当前用户 > 个人 > 证书中),并单击右键。 选择“所有任务”->“导出”。 此操作将打开“证书导出向导” 。
在向导中,选择“下一步”。
选择“是,导出私钥”,然后选择“下一步”。
在“导出文件格式”页上,选择“个人信息交换 - PKCS #12 (PFX)”。 选择以下项:
- 在证书路径中包括所有证书(如果可能)
- 导出所有展开的属性
- 启用证书隐私
选择下一步。 在“安全”页上,选择“密码”和加密方法。 然后选择下一步。
指定文件名并浏览到要导出到的位置。
选择“完成”导出证书。
你会看到一条确认消息,显示“导出成功”。
入站证书 - 导出公钥数据
导出入站证书的公钥数据。 配置站点到站点连接时,该文件中的信息用于入站证书链字段。 导出的文件必须采用 .cer
格式。 不要加密证书值。
- 要获取证书 .cer 文件,请打开“管理用户证书”。
- 找到该证书(通常位于“证书 - 当前用户 > 个人 > 证书”中),并单击右键。 选择“所有任务”->“导出”。 此操作将打开“证书导出向导” 。
- 在向导中,选择“下一步”。
- 选择“否,不导出私钥”。 然后选择下一步。
- 选择“Base-64 编码 X.509 (.CER)”,然后选择“下一步”。
- 指定文件名并浏览到要导出到的位置。
- 选择“完成”导出证书。
- 你会看到一条确认消息,显示“导出成功”。
- 此
.cer
文件稍后将在配置连接时使用。
根证书 - 导出公钥数据
导出根证书的公钥数据。 导出的文件必须采用 .cer
格式。 不要加密证书值。
- 要获取证书 .cer 文件,请打开“管理用户证书”。
- 找到该证书(通常位于“证书 - 当前用户 > 个人 > 证书”中),并单击右键。 选择“所有任务”->“导出”。 此操作将打开“证书导出向导” 。
- 在向导中,选择“下一步”。
- 选择“否,不导出私钥”。 然后选择下一步。
- 选择“Base-64 编码 X.509 (.CER)”,然后选择“下一步”。
- 指定文件名并浏览到要导出到的位置。
- 选择“完成”导出证书。
- 你会看到一条确认消息,显示“导出成功”。
- 此
.cer
文件稍后将在配置连接时使用。
创建 Key Vault
此配置需要 Azure Key Vault。 以下步骤创建了一个密钥保管库。 稍后将证书和托管标识添加到密钥保管库。 有关更全面的步骤,请参阅快速入门 - 使用 Azure 门户创建密钥保管库。
- 在 Azure 门户中,搜索“Key Vaults”。 在“Key Vaults”页上,选择“+创建”。
- 在“创建密钥保管库”页上,填写所需的信息。 资源组不必与用于 VPN 网关的资源组相同。
- 在“访问配置”选项卡上,对于“权限模型”,选择“保管库访问策略”。
- 不要填写任何其他字段。
- 选择“查看 + 创建”,然后创建密钥保管库。
将出站证书文件添加到密钥保管库
以下步骤可帮助你将出站证书信息上传到 Azure Key Vault。
- 转到密钥保管库。 在左窗格中,打开“证书”页。
- 在“证书”页上,选择“+ 生成/导入”。
- 对于“证书创建方法”,请从下拉列表中选择“导入”。
- 输入直观的证书名称。 这不需要是证书公用名或证书文件名。
- 上传出站证书文件。 证书文件必须具有以下格式之一:
- .pfx
- .pfm
- 输入用于保护证书信息的密码。
- 选择“创建”以上传证书文件。
将托管标识添加到密钥保管库
- 转到密钥保管库。 在左窗格中,打开“访问策略”页。
- 选择“+创建”。
- 在“创建访问策略”页上,对于“机密管理选项”和“证书管理操作”,选择“选择全部”。
- 选择“下一步”以移动到“主体”页。
- 在“主体”页上,搜索并选择之前创建的托管标识。
- 选择“下一步”并跳转到“审阅 + 创建”页。 选择创建。
配置 VPN 设备
通过站点到站点连接连接到本地网络需要 VPN 设备。 在此步骤中,请配置 VPN 设备。 配置 VPN 设备时,需要以下值:
- 证书:需要将证书数据用于身份验证。 创建 VPN 连接时,此证书也将用作入站证书。
- 虚拟网络网关的公共 IP 地址值:若要使用 Azure 门户查找 VPN 网关 VM 实例的公共 IP 地址,请转到虚拟网络网关,并在“设置 -> 属性”下查找。 如果有主动-主动模式网关(建议使用),请确保为每个 VM 实例设置隧道。 这两条隧道都是同一连接的一部分。 主动-主动模式 VPN 网关有两个公共 IP 地址,每个网关 VM 实例都有一个。
根据所用的 VPN 设备,有时可以下载 VPN 设备配置脚本。 有关详细信息,请参阅下载 VPN 设备配置脚本。
有关更多配置信息,请参阅以下链接:
- 有关兼容 VPN 设备的信息,请参阅 VPN 设备。
- 在配置 VPN 设备之前,对于要使用的 VPN 设备,请查看是否存在任何已知的设备兼容性问题。
- 有关设备配置设置的链接,请参阅已验证的 VPN 设备。 我们会尽力提供各种设备配置链接。 如需最新的配置信息,最好是咨询设备制造商。 列表中显示了我们已测试的版本。 即使你的 OS 不在该列表中,也仍有可能版本是兼容的。 请与设备制造商联系以验证 VPN 设备的 OS 版本是否兼容。
- 有关 VPN 设备配置的概述,请参阅第三方 VPN 设备配置概述。
- 若要了解如何编辑设备配置示例,请参阅编辑示例。
- 有关加密要求的信息,请参阅关于加密要求和 Azure VPN 网关。
- 有关 IPsec/IKE 参数的信息,请参阅关于用于站点到站点 VPN 网关连接的 VPN 设备和 IPsec/IKE 参数。 除了完成配置所需的其他参数信息外,此链接还显示有关 IKE 版本、Diffie-Hellman 组、身份验证方法、加密和哈希算法、SA 生存期、PFS 和 DPD 的信息。
- 有关 IPsec/IKE 策略的配置步骤,请参阅配置用于站点到站点 VPN 或 VNet 到 VNet 连接的 IPsec/IKE 策略。
- 若要连接多个基于策略的 VPN 设备,请参阅使用 PowerShell 将 Azure VPN 网关连接到多个基于策略的本地 VPN 设备。
创建站点到站点连接
在此部分中,在虚拟网关和本地 VPN 设备之间创建站点到站点 VPN 连接。
收集配置值
在继续之前,请收集以下所需配置值的信息。
出站证书路径:这是出站证书的路径。 出站证书是从 Azure 连接到本地位置时使用的证书。 此信息来自上传到 Azure Key Vault 的同一证书。
- 转到 Key Vault 并单击密钥保管库。 在左窗格中,展开“对象”并选择“证书”。
- 找到并单击证书以打开证书页。
- 单击证书版本的行。
- 复制密钥 ID 旁的路径。 此路径特定于该证书。
示例:
https://s2s-vault1.vault.azure.net/certificates/site-to-site/<certificate-value>
入站证书使用者名称:这是入站证书的公用名。 若要查找此值:
- 如果在 Windows 计算机上生成了证书,则可以使用“证书管理”找到该证书。
- 转到“详细信息”选项卡。滚动并单击“使用者”。 可以在下窗格中看到这些值。
- 不要在值中包含“公用名=”。
入站证书链:此证书信息仅用于验证传入的入站证书,并且不包含私钥。 门户的入站证书部分应始终至少具有两个证书。
如果证书链中有中间证书颁发机构,请先将根证书添加为第一个中间证书,然后紧接着添加入站中间证书。
使用以下步骤以入站证书字段所需的格式提取证书数据。
创建连接
转到创建的虚拟网络网关,然后选择“连接”。
在“连接”页的顶部,选择“+添加”打开“创建连接”页。
在“创建连接”页的“基本信息”选项卡上,配置连接的各个值:
在“项目详细信息”下,选择订阅和资源所在的资源组。
在“实例详细信息”下,配置以下设置:
- 连接类型: 选择“站点到站点(IPsec)”。
- 名称: 命名连接。 示例:VNet 到站点 1 的连接。
- 区域:选择此连接所在的区域。
选择设置选项卡。
配置以下值:
- 虚拟网络网关:从下拉列表中选择虚拟网络网关。
- 本地网络网关:从下拉列表中选择本地网络网关。
- 身份验证方法:选择 Key Vault 证书。
- 出站证书路径:出站证书位于 Key Vault 中的路径。 获取此信息的方法位于本部分的开头。
- 入站证书使用者名称:入站证书的公用名。 获取此信息的方法位于本部分的开头。
- 入站证书链:从
.cer
文件复制的证书数据。 复制并粘贴入站证书的证书信息。 获取此信息的方法位于本部分的开头。 - IKE 协议:选择“IKEv2”。
- 使用 Azure 专用 IP 地址:不选。
- 启用 BGP:仅当想要使用 BGP 时才启用。
- IPsec/IKE 策略:选择“默认”。
- 使用基于策略的流量选择器:选择“禁用”。
- DPD 超时(秒):选择“45”。
- 连接模式:选择“默认”。 此设置用于指定哪个网关可以启动连接。 有关详细信息,请参阅 VPN 网关设置 - 连接模式。
- 对于“NAT 规则关联”,请将“流入量”和“流出量”保留为“已选 0”。
选择“查看 + 创建”以验证连接设置,然后选择“创建”以创建连接。
部署完成后,可在虚拟网络网关的“连接”页上查看连接。 “状态”会从“未知”更改为“正在连接”,再更改为“成功”。
后续步骤
连接完成后,可将虚拟机添加到 VNet。 有关详细信息,请参阅虚拟机。 若要详细了解网络和虚拟机,请参阅 Azure 和 Linux VM 网络概述。
有关 P2S 故障排除信息,请参阅排查 Azure 点到站点连接问题。