“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 部署中 的相关文章

  • TFS 构建失败,文件“无法复制文件”,甚至不在项目中

    我已经设置了 TFS Build 直到昨天为止都运行良好 从那时起 我从一个项目中收到以下错误 C Program Files x86 MSBuild Microsoft VisualStudio v11 0 WebApplications
  • 如何删除 TFS 工作区映射?

    我在一个团队项目中的 tfs 中有一个项目 然后我们将该项目移动到另一个团队项目中的不同位置 我已将 Jenkins 配置为连接到团队项目并构建我的解决方案 但是当我更改设置以连接到新的 tfs 团队项目时 出现以下错误 workspace
  • tf.exe 撤消其他用户的挂起更改

    我希望将我们的 TFS 项目迁移到另一台服务器 在执行此操作之前 我想检查所有待处理的更改 撤消它们 或告诉检查人员检查其全部内容 并将项目锁定在旧服务器上 为此 我需要撤消不再存在的非常旧的工作区中的签出 我现在正在寻找使这项工作发挥作用
  • Azure DevOps Pipelines“正在等待代理的控制台输出...”

    我需要从正在运行的发布任务的输出中获取某些内容才能完成 身份验证代码 但控制台现在没有更新 我得到的只是 等待代理的控制台输出 这种情况发生在我们的自托管代理 Linux 或 Windows 和托管 Ubuntu 1604 代理上 有问题的
  • 以编程方式将 PEM 证书导入 Java KeyStore

    我有一个由两个文件 crt 和 key 组成的客户端证书 我希望将其导入到 java KeyStore 中 然后在 SSLContext 中使用 以通过 Apache 的 HTTPClient 发送 HTTP 请求 但是 我似乎找不到一种以
  • Web 应用程序的 Spring Boot 和 Comodo https 配置

    我是 https 配置的新手 并尝试配置 spring boot 和 Comodo SSL 经过几次电话和尝试后 我已经弄清楚如何为您的 spring boot 网站正确配置 https 下面的答案是详细步骤 希望它可以帮助人们生成更安全的
  • 如何在docker的keycloak中添加SSL

    我在将 SSL 证书添加到在 docker 上运行的 Keycloak 时遇到问题 我通过负载均衡器从 AWS EC2 获得了 SSL 证书 但不知道如何将其添加到 docker 上的 Keycloak 中 我正在通过谷歌搜索 但尚未找到任
  • Android SSL 无对等证书

    我有一个例外 没有同行证书 当我询问谷歌时 我得到了解决方案 我信任所有证书 但这个问题的答案是 它是不安全的 所以我给班级打电话 HostnameVerifier hostnameVerifier org apache http conn
  • 如何在 IIS 8 中远程停止/启动应用程序池

    注意 每条线使用一行 我在 IIS 6 中使用了这些命令 它们工作得很好 Start get wmiobject namespace root MicrosoftIISv2 computername REMOTE SERVER class
  • OpenSSL SSL_connect:SSL_ERROR_SYSCALL VS2017 社区/TFS

    我无法将本地 git 与 Visual Studio 在线同步 这是我得到的错误 Git 因致命错误而失败 无法访问 https mysite visualstudio com DefaultCollection git MajorMain
  • 链和主证书添加之间 X509 结构的正确释放是否有所不同?

    我需要从内存中添加 PEM 类型证书 这意味着我无法使用内置的从文件读取帮助程序 我的问题是没有关于如何释放内存的文档 现在我最好的猜测如下 SSL CTX use certificate X509 structure SHOULD be
  • Powershell Invoke-Command 远程手动工作,但不能通过 Jenkins

    我遇到了一个非常奇怪的情况 即从 Windows Server 2012 R2 手动运行相同的命令时可以工作 但从同一服务器上运行的 Jenkins 从属进程无法工作 首先 手动运行的输出 管理 PowerShell 窗口 PS C Use
  • mysql jdbc 与 SSL 连接在 tls 握手级别失败

    我们的 mysql 服务器配置为仅接受与 ssl 密码 DHE RSA AES256 GCM SHA384 的连接 我正在使用 java mysql connector java 8 0 15 和 java 8 openjdk 版本 1 8
  • SSL_connect 返回=1 errno=0 状态=SSLv3 读取服务器证书 B:证书验证仅在代理时失败

    这篇文章几乎重复了许多其他帖子 包括Rails 4 和 Ruby 2 Net HTTP SSL 请求 OpenSSL SSL SSLError SSL connect returned 1 errno 0 state SSLv2 v3 re
  • 在 apache 上托管多个 SSL 证书

    我希望有人能帮我解决这个问题 我有 2 个 IP 可用于执行此操作 并且需要在同一台 Apache 服务器上托管 2 个不同的安全 SSL 域 我已经读到 从 Apache 2 2 开始 可以使用某种插件来使用单个 IP 但我希望保持尽可能
  • ca 证书 Mac OS X

    我需要在emacs 上安装offlineimap 和mu4e 问题是配置 当我运行 Offlineimap 时 我得到 OfflineIMAP 6 5 5 Licensed under the GNU GPL v2 v2 or any la
  • 在 Visual Studio 中设置 SSL 证书

    我在新计算机上全新安装了 Visual Studio Community 2019 我启动了一个网络应用程序项目 第一次运行它 然后当提示接受自签名证书时 我以某种方式设法单击 不再询问 and No 此时 运行网络应用程序时 我收到 ER
  • 如何在 iOS 上固定证书的公钥

    在提高我们正在开发的 iOS 应用程序的安全性时 我们发现需要对服务器的 SSL 证书 全部或部分 进行 PIN 操作以防止中间人攻击 尽管有多种方法可以做到这一点 但当您搜索此内容时 我只找到了固定整个证书的示例 这种做法会带来一个问题
  • 避免不同开发人员在签入或合并时意外覆盖

    不同的开发人员签入涉及同一文件的代码 或者不同的分支可能会被合并 我是 TFS 管理方面的新手 但我确实知道如何进行基本的代码签入 如何避免管理端的代码冲突 我们使用 Microsoft Team Foundation 服务器作为版本控制
  • p2p 通信中的对等方如何相互验证?

    WebRTC 中的对等点如何相互验证 WebRTC 中的 DTLS 使用自签名证书 RFC 5763 https www rfc editor org rfc rfc5763具有详细信息 简而言之 证书指纹与 SDP 的 a fingerp

随机推荐