![如何为必须通过 VPN 连接到 Azure 服务器的 PC 更新过期的证书?](https://linux22.com/image/749365/%E5%A6%82%E4%BD%95%E4%B8%BA%E5%BF%85%E9%A1%BB%E9%80%9A%E8%BF%87%20VPN%20%E8%BF%9E%E6%8E%A5%E5%88%B0%20Azure%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%20PC%20%E6%9B%B4%E6%96%B0%E8%BF%87%E6%9C%9F%E7%9A%84%E8%AF%81%E4%B9%A6%EF%BC%9F.png)
我使用 PowerShell 创建了自签名证书https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-certificates-point-to-site#clientexport一年前我购买了证书,现在是时候更新它们了。我甚至无法再通过 VPN 连接到我设置的 Azure 云,因为证书今天已过期。我在任何尝试启动 VPN 的 Windows 10 客户端计算机上都收到错误“找不到可用于此可扩展身份验证协议的证书。(错误 798)”。
我相信此时我必须重新生成所有根证书和客户端证书,但如果有更简单的方法来解决这个问题,请告知。
答案1
似乎没有简单的方法,只能每次都从头开始。虽然最好在证书过期之前执行此操作 - 如果证书确实过期,只需重新执行相同的程序即可。这是您首次生成原始自签名证书时所遵循的步骤的子集(当然,现在您不会重新创建虚拟网络,也不会在 Azure 上重新创建 VPN 网关等。相反,您只需在下面的第 2 步中更新它的公共证书数据)。
是的,在此过程中(下面的步骤 1 和 2),您将创建一个新的根证书,并且必须将公共证书数据粘贴到 Azure 门户上(https://portal.azure.com)。您可以在其中保留多个(最多 20 个)此类证书,其目的是预测证书过期时间,并在旧证书过期之前为您的 Azure 云准备下一个有效证书。
如果证书无意中过期并且您没有准备好新的证书来提前替换它们,那么除了您的用户会暂时遇到停机之外,您只需按照下面完全相同的步骤操作,基本上就不会错过任何内容。
注意:云上的任何虚拟机不一定也需要安装证书(除非您在那里也将它们用于需要加密的其他目的)。只有客户端才需要。Azure 点到站点网关的证书数据(处理您的 VPN 连接)是需要按照下面的步骤 2 在云上更新的全部内容。当然,您必须更新客户端的证书(步骤 3)。
- 在管理员的 PC(即您选择用作创建证书的主位置的本地物理计算机或服务器)上,重新生成所有自签名证书(根证书和客户端证书,就像从头开始一样,因此基本上按照此处为此步骤指定的链接上的所有步骤进行操作)https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-certificates-point-to-site
- 按照标题为“上传根证书公共证书数据”的步骤将根密钥文本粘贴到 Azure 门户 (portal.azure.com) 上https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-howto-point-to-site-resource-manager-portal#uploadfile。请注意,在保存新粘贴的证书之前,您需要在此处删除所有过期的证书,否则您在 Azure 门户上的保存操作将失败。
- 在所有客户端电脑上安装客户端证书https://docs.microsoft.com/en-us/azure/vpn-gateway/point-to-site-how-to-vpn-client-install-azure-cert
- 在 Azure 门户上重新生成 VPN 客户端配置文件https://docs.microsoft.com/en-us/azure/vpn-gateway/point-to-site-vpn-client-configuration-azure-cert然后将其安装在每台客户端电脑上
完成上述步骤后,您的客户端应该能够重新建立与 Azure 云的 VPN 连接(并消除错误 798)并能够像以前一样在那里完成所有工作。
答案2
第一个答案太复杂了......
无法更新现有的 VPN 证书。您可以做的只是将新证书密钥添加到现有的 Azure VPN 配置中
首先从 Azure 中删除现有的根密钥
然后在 PowerShell ISE 控制台上运行以下 PowerShell 脚本
$cert = New-SelfSignedCertificate-Type 自定义-KeySpec 签名
-Subject "CN=PS2RootCert" -KeyExportPolicy Exportable
-HashAlgorithm sha256-KeyLength 2048 `-CertStoreLocation“Cert:\CurrentUser\My”-KeyUsageProperty 签名-KeyUsage CertSignNew-SelfSignedCertificate-Type自定义-DnsName P2SChildCert-KeySpec签名
-Subject "CN=PS2ChildCert" -KeyExportPolicy Exportable
-HashAlgorithm sha256-KeyLength 2048-CertStoreLocation "Cert:\CurrentUser\My"
-Signer $cert-TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")导出根证书和子证书密钥
在 Azure 现有 VPN 配置上添加根导出密钥,确保已删除旧密钥
然后在 UserPC 上安装新的 childcert 并使用相同的旧设置进行连接