msdeploy 获取 ERROR_CERTIFICATE_VALIDATION_FAILED,allowUntrusted 被忽略

msdeploy getting ERROR_CERTIFICATE_VALIDATION_FAILED, allowUntrusted being ignored

我正在使用 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.

知道我错过了什么吗?

问题出在目标系统上的用户密码上。

我在另一个 post 上看到有人在 -dest 条目之前移动了 -allowUntrusted 标志。我试过了,然后开始收到 ERROR_USER_UNAUTHORIZED 消息。输入的密码一切都是正确的,但它以 * 字符开头,并且其中还有一个单引号。我为没有使用这些特殊字符的用户生成了一个新密码,并在远程系统上更改了它。之后一切正常。

我能够 运行 如初始 post 所示的命令,没有任何错误。

如果您得到 ERROR_CERTIFICATE_VALIDATION_FAILEDERROR_USER_UNAUTHORIZED 并且一切设置正确,请尝试更改分配给目标系统上用户的密码。看来有些密码是行不通的。

-allowUntrusted 对我不起作用。

我用过这个:

/p:AllowUntrustedCertificate=True

<AllowUntrustedCertificate>True</AllowUntrustedCertificate> 添加到我的 pubxml 文件似乎初步解决了问题。

几天后重新发布时,我遇到了同样的错误。我进入了Publish Settings重新输入了我的密码,发布成功

我现在认为我最初的问题是通过重新输入密码解决的,而不是通过添加 <AllowUntrustedCertificate>True</AllowUntrustedCertificate>

我注意到您使用了部署服务器的 IP 地址:

-dest:iisApp="mycompany.com",ComputerName="https://<hostip>:8172/MsDeploy.axd"

这导致了我的证书验证错误,因为 SSL 证书是针对域名而不是 IP 地址颁发的。更改为域名而不是 IP 地址修复了它。

我通过进入发布设置解决了这个问题,然后单击底部的 "Validate Connection"。然后这个错误就消失了。

只想添加我的 50 美分和我的解决方案,这样它可能会对其他人有所帮助。 我解决的问题是使用远程桌面连接到主机 当被要求接受机器证书时(输入登录名和密码后),我在底部标记了记住这个。 希望这对某人有帮助

将此解决方案添加为其他 none 对我有用...

我必须添加这些行来发布个人资料:

<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>

添加之后,还是发布失败。然后我打开发布配置文件设置,单击验证连接并保存。才发布成功

另一种可能的解决方案 - 专门部署 Web 作业

我知道这是一个旧的 post,但我 运行 在部署我的 Azure Web 作业时遇到了 VS 2019 的这个问题。 None 以上对我有用。最终起作用的是在更新发布配置文件后使用工具重新进行身份验证。我解决它的方法是右键单击解决方案并选择 "Publish as Azure Webjob.." 即使在创建新的发布配置文件之后它仍然失败。然后我添加了以下我的发布配置文件。

<_DestinationType>AzureWebSite</_DestinationType>    
<UseMSDeployExe>True</UseMSDeployExe>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>

我再次尝试发布,但失败了。然后我通过单击下面显示的编辑密码 link 重新验证。

当您这样做时,您将看到以下屏幕。点击 "Attempt to retrieve credentials from Azure" link.

从 Azure 检索凭证后,不要忘记点击底部的保存按钮。完成后,返回并再次尝试发布。它应该工作得很好。

注意:如果您是第一次提取 down/created 发布配置文件,请不要单击发布配置文件名称下的编辑按钮并验证连接方式如下所示。

如果这样做,它可能会从 UI 中删除我上面第一张图片中显示的发布工具的 username/password。如果它消失了,您需要通过删除您的配置文件、创建一个新配置文件并最后按顺序执行上述步骤来重新开始此过程。我不知道为什么会这样,但我注意到了一些事情。