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

问题描述:

我正在使用VSTS部署到Azure VM。”SSL证书包含与主机名不匹配的通用名称(CN)。“在VSTS中部署

的SSL证书包含一个通用名(CN)不匹配 主机名:在我的版本的定义,我想在复制文件时,收到以下错误。有关详细信息,请参阅 about_Remote_Troubleshooting帮助主题。要修复WinRM连接 相关问题,请在 任务中选择“启用复制先决条件”选项。如果已设置,并且目标虚拟机由 负载平衡器支持,请确保为目标端口 (5986)配置了入站NAT规则。仅适用于ARM VM。

我不使用负载平衡器];欲了解更多信息,请参阅 https://aka.ms/azurefilecopyreadme}。我注意到,每当我在Azure门户(在公共IP设置中)为我的虚拟机添加DNS名称标签时,都会出现此问题。

该问题不在主机文件或构建代理中,而是在TARGET机器上的服务器证书。对我来说,当我遇到问题时,我正在使用VSTS部署到Azure VM,但解决方案仍然与现场机器一样。

对于Azure的VM部署,当你创建一个虚拟机没有DNS名称标签为你的公网IP,然后再添加一个(像example.centralus.cloudapp.azure.com)出现问题。如果更改DNS名称标签,也会发生这种情况。


问题

你要检查你是如何连接到本机。之前,它使用Azure虚拟机IP地址工作得很好。现在,由于我最近添加了DNS名称标签,因此VSTS开始尝试使用example.centralus.cloudapp.azure.com:5986。我们将这称为目标机器地址

目标机器上,以管理员身份打开PowerShell或命令提示符,然后输入命令'winrm e winrm/config/listener'。它应该返回两个侦听器,一个用于HTTP,另一个用于HTTPS(如果没有列出HTTPS,请不要担心我们稍后会添加一个侦听器)。请特别注意HTTPS侦听器的主机名。如果这与我们之前发现的目标机器地址不匹配,那是什么导致了错误。 CertificateThumbprint对应于机器上的服务器证书。

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

您也可以在“服务器证书”下的IIS中查看证书。


解决方案

确保你知道你要使用连接到机器什么解决。这是目标机器地址

目标机器上,以管理员身份打开PowerShell。输入以下命令。

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

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

接下来,我们要为HTTPS传输类型重新创建WinRM侦听器以使用新证书。打开IIS并查看您的Web服务器的服务器证书。你应该看到你刚刚创建的那个。右键点击它并选择'查看...'。在详细信息选项卡中,复制指纹作为证书。如果你愿意,你也可以从mmc做到这一点。

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

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

然后:

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

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

如果你的版本定义或部署脚本任何使用旧的地址(对我来说,在Azure虚拟机的IP地址),一定要更新它们使用新目标机器地址(对我来说,Azure的VM DNS名称标签)带端口号。在VSTS中,请确保您选中使用'测试证书'的复选框。祝你好运!

欲了解更多信息,你可以去这里:

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

+0

也有类似的问题,而试图连接到本机部署到:使用HTTPS主机名,而不是固定为我的IP地址。非常感谢! – Tybs

+0

感谢您的详细解释!为我的问题完美工作。 – RMD

+1

永远不会太晚 – Rahul