从Visual Studio 2015发布 - 允许不受信任的证书

时间:2015-11-11 20:58:13

标签: .net ssl visual-studio-2015 publish asp.net-core

我正在从Visual Studio 2015发布我的ASP.NET 5 MVC6项目。我已经从我的服务器导入了发布配置文件。连接验证成功,但是当我发布项目时出现以下错误:

ERROR_CERTIFICATE_VALIDATION_FAILED

  

使用指定的连接到远程计算机(“XXXXXXXXX”)   进程(“Web管理服务”),但无法验证服务器的   证书。如果您信任该服务器,请再次连接并允许   不受信任的证书。

在发布设置中不允许允许不受信任的证书。

9 个答案:

答案 0 :(得分:85)

当前工具尚不支持允许不受信任证书的选项。希望这会很快得到更新。但是,您可以手动设置它。

  1. 在文本编辑器中打开/ Properties / PublishProfiles中的发布配置文件(.pubxml
  2. <PropertyGroup>元素内,将AllowUntrustedCertificate设置为True(<AllowUntrustedCertificate>True</AllowUntrustedCertificate>)或如果不存在则添加
  3. 将UsePowerShell设置为False(<UsePowerShell>False</UsePowerShell>)。
  4. 在撰写本文时,生成的powershell脚本忽略了可能是错误的AllowUntrustedCertificate属性,因此需要将其设置为False

    如果.ps1文件中update the module version,您可以使PowerShell工作。

    作为旁注,你也可以通过&#34;信任&#34;来解决这个问题。本地服务器的证书。

答案 1 :(得分:28)

对于dot net core 1.0,您必须添加标记

 <AllowUntrustedCertificate>True</AllowUntrustedCertificate>

在.pubxml文件中发布配置文件

答案 2 :(得分:10)

我有<UsePowerShell>True</UsePowerShell>但它仍然因证书错误而失败。

  • 我在设置对话框中重新输入了密码,但仍然失败
  • 点击验证连接后,它就开始工作了。

Publish Settings Dialog

注意

  • VS 2017(15.2)
  • 我的密码最近更改了
  • 作为测试,输入了错误的密码,我收到了证书错误,因此证书错误不仅仅是关于不受信任的证书

答案 3 :(得分:9)

对我来说,解决方案在发布配置文件xml中占用了4行。

<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<UseMsDeployExe>true</UseMsDeployExe>
<UserName>myuser</UserName>
<Password>mypass</Password>

UseMsDeployExe更改错误以忽略证书,但不对用户进行身份验证,因此需要用户并传递(您正在部署的计算机)

powershell脚本不需要进行任何更改。

答案 4 :(得分:1)

<强>更新

在VS2015或VS2017社区部署.net核心应用程序到远程IIS服务器时,请稍等一点,请使用此

<UsePowerShell>True</UsePowerShell> 

<UsePowerShell>False</UsePowerShell>

发现部署已成功完成,但在将标记更改为 true 之前,没有文件复制到服务器。

我希望这有助于某人。

答案 5 :(得分:0)

又一个解决方案

我在远程IIS上创建了发布设置,并在Visual Studio 2017(15.2)中导入了它们。 之后我更改了URL以指定网站名称,因为IIS用户只能访问特定网站(感谢this回答SO)。 我已经通过UI输入了凭据,无需在配置文件中存储密码。

我的个人资料如下:

<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>https://some.site.com:443/</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<PublishFramework>netcoreapp1.1</PublishFramework>
<ProjectGuid>eecf975e-f2e6-440f-bfd6-a0a63c25e3c3</ProjectGuid>
<MSDeployServiceURL>https://url.toourserver.com:8172/msdeploy.axd?site=some.site.com</MSDeployServiceURL>
<DeployIisAppPath>some.site.com</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>IISUserName</UserName>    
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>    
<_SavePWD>True</_SavePWD>
由于我的机器上不信任自签名证书,因此需要

<AllowUntrustedCertificate>

使用此配置文件,根据IIS中的设置进行备份,该过程完成后,我的浏览器中的站点将更新并打开: - )

虽然这里的所有其他答案也使它有效,但我认为分享这种方式会很好,因为它只涉及一些更改(AllowUntrustedCertificate)并且没有普通密码的存储。

答案 6 :(得分:0)

在导入或创建配置文件后,单击配置,然后验证连接。输入密码并完成设置。现在部署。

答案 7 :(得分:0)

还有另一种解决方案

在VS2019中部署Azure Web Jobs时遇到了同样的问题。查看我的答案here,了解更多详细信息。

答案 8 :(得分:0)

对于VS 2019中的dotnet 3.1.0,只需进入“编辑”配置文件->验证连接->接受证书并完成