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

问题描述 投票:54回答:7

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

ERROR_CERTIFICATE_VALIDATION_FAILED

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

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

.net ssl visual-studio-2015 publish asp.net-core
7个回答
89
投票

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

  1. 在文本编辑器中打开/ Properties / PublishProfiles中的发布配置文件(.pubxml
  2. <PropertyGroup>元素内,将AllowUntrustedCertificate设置为True(<AllowUntrustedCertificate>True</AllowUntrustedCertificate>)或添加它(如果它不存在)
  3. 将UsePowerShell设置为False(<UsePowerShell>False</UsePowerShell>)。

在撰写本文时,生成的powershell脚本忽略了AllowUntrustedCertificate属性,这可能是一个错误,因此需要将其设置为False

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

作为旁注,您还可以通过本地“信任”服务器的证书来解决此问题。


31
投票

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

 <AllowUntrustedCertificate>True</AllowUntrustedCertificate>

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


12
投票

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

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

Publish Settings Dialog

注意

  • VS 2017(15.2)
  • 我的密码最近改变了
  • 作为测试,输入了错误的密码,我得到了证书错误,因此证书错误显然不仅仅是一个不受信任的证书

9
投票

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

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

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

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


1
投票

更新

在VS2015或VS2017社区部署.net核心应用程序到远程IIS服务器时,请稍微观察一下

<UsePowerShell>True</UsePowerShell> 

<UsePowerShell>False</UsePowerShell>

发现部署成功完成但没有文件被复制到服务器,直到我将标记更改为true。

我希望这可以帮助别人。


1
投票

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


0
投票

又一个解决方案

我在远程IIS上创建了发布设置,并在Visual Studio 2017中导入它们(15.2)。之后我更改了URL以指定sitename,因为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)并且没有普通密码的存储。

© www.soinside.com 2019 - 2024. All rights reserved.