“SSL 证书包含与主机名不匹配的公用名 (CN)。”在 VSTS 部署中

2024-02-11

我正在使用 VSTS 部署到 Azure VM。在我的发布定义中,尝试复制文件时收到以下错误:

SSL 证书包含不匹配的公用名 (CN) 主机名。欲了解更多信息,请参阅 about_Remote_Troubleshooting 帮助主题。修复 WinRM 连接 相关问题,请选择“启用复制先决条件”选项 任务。如果已设置,并且目标虚拟机由 负载均衡器,确保为目标端口配置入站 NAT 规则 (5986)。仅适用于 ARM VM。欲了解更多信息,请参阅https://aka.ms/azurefilecopyreadme https://aka.ms/azurefilecopyreadme};]

我没有使用负载平衡器。我注意到,每当我在 Azure 门户(公共 IP 设置中)中为 VM 添加 DNS 名称标签时,就会出现此问题。


问题不在于主机文件或构建代理,而在于服务器证书TARGET机器。对我来说,我使用 VSTS 部署到Azure VM当我遇到这个问题时,但解决方案仍然相同onsite机器也是如此。

对于 Azure VM 部署,当您创建没有配置的 VM 时会出现此问题DNS 名称标签为您的公共 IP,然后添加一个(例如example.centralus.cloudapp.azure.com)。如果您更改 DNS 名称标签,也可能会发生这种情况。


Issue

您需要检查如何连接到机器。之前,使用 Azure VM IP 地址运行得很好。现在,VSTS开始尝试使用example.centralus.cloudapp.azure.com:5986因为我最近添加了 DNS 名称标签。我们将其称为目标机器地址.

On the target计算机,以管理员身份打开 PowerShell 或命令提示符,然后输入命令 'winrm e winrm/config/listener'。它应该返回两个侦听器,其中一个用于HTTP另一个用于HTTPS(如果未列出 HTTPS,请不要担心,我们稍后会添加)。请特别注意Hostname对于 HTTPS 侦听器。如果这不匹配目标机器地址我们之前发现,这就是导致错误的原因。这证书指纹对应于机器上的服务器证书。

要查看这些证书,请从 PowerShell 或命令提示符中键入mmc并按回车键。转到“文件”>“添加/删除管理单元...”。选择“证书”,然后单击Add。在对话框中,选择“计算机帐户”,然后单击Next then Finish。在“证书”>“个人”>“证书”下,您将看到 WinRM 配置正在使用的证书。这里考虑的是自签名的证书测试证书因为它们没有得到官方证书颁发机构的支持。我们需要创建一个代表目标机器地址你想用。

您还可以在 IIS 中的“”下查看证书服务器证书'.


Solution

确保您知道要使用哪个地址来连接到计算机。这是目标机器地址.

On the target计算机,以管理员身份打开 PowerShell。输入以下命令。

New-SelfSignedCertificate -DnsName WhateverTargetMachineAddressYouNeed -CertStoreLocation Cert:\LocalMachine\My

这将为您的目标地址创建一个新的服务器证书,有效期为一年。

接下来,我们要为 HTTPS 传输类型重新创建 WinRM 侦听器以使用新证书。打开IIS看看服务器证书为您的网络服务器。您应该会看到刚刚创建的那个。右键单击它并选择“查看...”。在里面Details选项卡,复制指纹为了证书。如果您愿意,也可以从 mmc 执行此操作。

在 PowerShell 中一次输入以下命令。

winrm delete winrm/config/listener?Address=*+Transport=HTTPS

Then:

winrm create winrm/config/listener?Address=*+Transport=HTTPS '@{Hostname="WhateverTargetMachineAddressYouNeed";CertificateThumbprint="TheThumbprintYouCopied";port="5986"}'

Done!如果您输入winrm e winrm/config/listener在 PowerShell 中,您现在应该看到使用新证书的 HTTPS 传输。

如果您的发布定义或部署脚本中的任何内容使用旧地址(对我来说,是 Azure VM IP 地址),请务必将其更新为使用新地址目标机器地址(对于我来说,Azure VM DNS 名称标签)带有端口号。在 VSTS 中,请确保选中使用“测试证书'。祝你好运!

欲了解更多信息,您可以访问这里:

http://www.dotnetcurry.com/windows-azure/1289/configure-winrm-execute-powershell-remote-azure-with-arm http://www.dotnetcurry.com/windows-azure/1289/configure-winrm-execute-powershell-remote-azure-with-arm

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“SSL 证书包含与主机名不匹配的公用名 (CN)。”在 VSTS 部署中 的相关文章

随机推荐