msdeploy 得到 ERROR_CERTIFICATE_VALIDATION_FAILED,allowUntrusted 被忽略
Posted
技术标签:
【中文标题】msdeploy 得到 ERROR_CERTIFICATE_VALIDATION_FAILED,allowUntrusted 被忽略【英文标题】:msdeploy getting ERROR_CERTIFICATE_VALIDATION_FAILED, allowUntrusted being ignored 【发布时间】:2015-10-12 19:02:30 【问题描述】:我正在使用 msdeploy 将网站代码推送到 4 个不同的服务器(测试和生产服务器)。前 3 个工作正常,但第 4 个给我一个 ERROR_CERTIFICATE_VALIDATION_FAILED 错误。我正在使用 -allowUntrusted 选项。
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:iisApp="E:\workspace\testDeploy\outproject\_PublishedWebsites\<webfolder>" -dest:iisApp="mycompany.com",ComputerName="https://<hostip>:8172/MsDeploy.axd",UserName="<userid>",Password="****",AuthType="Basic" -allowUntrusted -enableRule:AppOffline -skip:objectName=filePath,absolutePath="^.*<webfolder>\\web.*\.config$|^.*mycompany\.com\\web.*\.config"
Error Code: ERROR_CERTIFICATE_VALIDATION_FAILED
More Infenter code hereormation: Connected to the remote computer ("<hostip>") using the specified process ("Web Management Service"), but could not verify the server's certificate. If you trust the server, connect again and allow untrusted certificates. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED.
Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Error: The remote certificate is invalid according to the validation procedure.
知道我错过了什么吗?
【问题讨论】:
【参考方案1】:在我的 pubxml 文件中添加 <AllowUntrustedCertificate>True</AllowUntrustedCertificate>
最初似乎可以解决问题。
不过,几天后重新发布时,我遇到了同样的错误。我进入Publish Settings
,重新输入了我的密码,然后发布成功。
我现在认为我最初的问题是通过重新输入密码解决的,而不是通过添加<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
。
【讨论】:
我相信这是解决发布者中似乎存在错误的正确解决方法。不需要像你说的那样允许不受信任的证书。 我无法在发生这种情况的环境中使用 VS 中的“报告问题”功能。如果有人能如此希望 MSFT 能解决这个问题,那就太好了。 Web Deploy - could not verify server's certificate 第二次开发社区问题报告:Publish Web App -> could not verify the server’s certificate。他们说它已在 15.5 中修复,但我在 16.1.0 预览版 3 中仍然存在问题?。【参考方案2】:-allowUntrusted 对我不起作用。
我用过这个:
/p:AllowUntrustedCertificate=True
【讨论】:
【参考方案3】:我通过进入发布设置,然后单击底部的“验证连接”来解决此问题。然后这个错误就消失了。
【讨论】:
这就是我自己解决问题的方法。单击“验证”后,出现一个对话框,询问我是否信任服务器证书,我说是。【参考方案4】:添加此解决方案,因为其他解决方案都不适合我...
我必须添加这些行来发布配置文件:
<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
添加这些后,发布仍然失败。然后我打开发布配置文件设置,单击验证连接并保存。才发布成功。
【讨论】:
【参考方案5】:问题在于目标系统上用户的密码。
我在另一个帖子中看到有人将 -allowUntrusted
标志移到了 -dest
条目之前。我试过了,我开始收到ERROR_USER_UNAUTHORIZED
消息。输入密码时一切都是正确的,但它以*
字符开头,并且还有一个单引号。我为未使用这些特殊字符的用户生成了一个新密码,并在远程系统上对其进行了更改。之后,一切正常。
我能够运行初始帖子中显示的命令而没有任何错误。
如果您收到ERROR_CERTIFICATE_VALIDATION_FAILED
或ERROR_USER_UNAUTHORIZED
并且一切设置正确,请尝试更改目标系统上分配给用户的密码。似乎有些密码不起作用。
【讨论】:
如果您编辑发布然后按“验证连接”,系统将提示您从服务器接收证书。收到证书后就可以正常发布了【参考方案6】:另一种可能的解决方案 - 专门部署 Web 作业
我知道这是一篇旧帖子,但我在部署 Azure Web 作业时遇到了 VS 2019 的这个问题。以上都不适合我。最终起作用的是在更新发布配置文件后使用该工具重新进行身份验证。我解决它的方法是右键单击解决方案并选择“发布为 Azure Webjob..”即使在创建新的发布配置文件之后它仍然失败。然后我添加了以下我的发布配置文件。
<_DestinationType>AzureWebSite</_DestinationType>
<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
我尝试再次发布它,但失败了。然后我通过单击下面显示的编辑密码链接重新进行身份验证。
执行此操作后,您将看到以下屏幕。单击“尝试从 Azure 检索凭据”链接。
从 Azure 中检索凭据后,不要忘记点击底部的保存按钮。完成后,返回并再次尝试发布。它应该可以正常工作。
注意:如果您是第一次下拉/创建您的发布配置文件,请不要点击发布配置文件名称下的编辑按钮,并以如下所示的方式验证连接。
如果您这样做,它可能会从 UI 中删除我上面第一张图片中显示的发布工具的用户名/密码。如果它消失了,您需要通过删除您的个人资料、创建一个新个人资料并最后按顺序执行上述步骤来重新开始此过程。我不知道它为什么会这样,但只是我注意到了。
【讨论】:
【参考方案7】:我注意到您使用了部署服务器的 IP 地址:
-dest:iisApp="mycompany.com",ComputerName="https://<hostip>:8172/MsDeploy.axd"
这导致我的证书验证错误,因为 SSL 证书是针对域名而不是 IP 地址颁发的。更改为域名而不是 IP 地址修复了它。
【讨论】:
【参考方案8】:只想添加我的 50 美分和我的解决方案,以便它可以帮助其他人。 我解决这个问题的方法是使用远程桌面连接到主机 当被要求接受机器证书时(输入登录名和密码后),我在底部标记了记住这一点。 希望这对某人有所帮助
【讨论】:
以上是关于msdeploy 得到 ERROR_CERTIFICATE_VALIDATION_FAILED,allowUntrusted 被忽略的主要内容,如果未能解决你的问题,请参考以下文章