从 Visual Studio 2015 年发布 - 允许不受信任的证书
Publishing from Visual Studio 2015 - allow untrusted certificates
我正在从 Visual Studio 2015 年发布我的 ASP.NET 5 MVC6 项目。我已经从我的服务器导入了发布配置文件。连接验证成功,但是当我发布我的项目时出现以下错误:
ERROR_CERTIFICATE_VALIDATION_FAILED
Connected to the remote computer ("XXXXXXXXX") 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.
发布设置中没有允许不受信任的证书的选项。
当前工具尚不支持允许不可信证书的选项。希望这会很快得到更新。但是,您可以手动设置它。
- 在文本编辑器 /Properties/PublishProfiles 中打开发布配置文件 (
.pubxml
)
- 在
<PropertyGroup>
元素内,将 AllowUntrustedCertificate 设置为 True (<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
),如果不存在则添加它
- 将 UsePowerShell 设置为 False (
<UsePowerShell>False</UsePowerShell>
)。
在撰写本文时,生成的 powershell 脚本忽略了 AllowUntrustedCertificate
属性 这可能是一个错误,因此需要将其设置为 False
.
如果您在 .ps1
文件中 update the module version,您可以让 powershell 工作。
附带说明一下,您还可以通过 "trusting" 本地服务器的证书来解决此问题。
对于 dot net core 1.0,您必须添加标签
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
在您的 .pubxml 文件中发布配置文件
更新
稍微观察一下,在 VS2015 或 VS2017 社区上部署 .net 核心应用程序时,到远程 IIS 服务器请使用此
<UsePowerShell>True</UsePowerShell>
没有
<UsePowerShell>False</UsePowerShell>
发现部署成功完成,但在我将标记更改为 true 之前没有文件复制到服务器。
我希望这对某人有所帮助。
对我来说,解决方案在发布配置文件中占用了 4 行 xml。
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<UseMsDeployExe>true</UseMsDeployExe>
<UserName>myuser</UserName>
<Password>mypass</Password>
UseMsDeployExe
将错误更改为忽略证书,但不对用户进行身份验证,因此需要用户和通行证(您要部署到的机器)
powershell 脚本中不需要任何更改。
我有 <UsePowerShell>True</UsePowerShell>
但它仍然因证书错误而失败。
- 我在设置对话框中重新输入了密码,但仍然失败
- 单击验证连接后,它开始工作。
备注
- VS 2017 (15.2)
- 我的密码最近更改了
- 作为测试,输入了 错误的 密码,我得到了证书错误,所以证书错误显然不仅仅是一个不受信任的证书
另一种解决方案
我在远程 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) 并且不存储普通密码。
导入或创建配置文件后,单击配置,然后验证连接。输入密码并完成设置。现在部署。
还有一个解决方案
我在 VS2019 中部署 Azure Web 作业时遇到了同样的问题。详情请看我的回答
对于 VS 2019 中的 dotnet 3.1.0,只需转到 "Edit" 配置文件 -> 验证连接 -> 接受证书并完成
将此行添加到您的发布配置文件中,该配置文件存在于所附图片中的路径中
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
安装最新版本的 .NET CLI
#2。在 pubxml 中设置此 属性,它应该始终如一地工作:
正确
(在 Properties\PublishProfiles.pubxml 下)
我正在从 Visual Studio 2015 年发布我的 ASP.NET 5 MVC6 项目。我已经从我的服务器导入了发布配置文件。连接验证成功,但是当我发布我的项目时出现以下错误:
ERROR_CERTIFICATE_VALIDATION_FAILED
Connected to the remote computer ("XXXXXXXXX") 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.
发布设置中没有允许不受信任的证书的选项。
当前工具尚不支持允许不可信证书的选项。希望这会很快得到更新。但是,您可以手动设置它。
- 在文本编辑器 /Properties/PublishProfiles 中打开发布配置文件 (
.pubxml
) - 在
<PropertyGroup>
元素内,将 AllowUntrustedCertificate 设置为 True (<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
),如果不存在则添加它 - 将 UsePowerShell 设置为 False (
<UsePowerShell>False</UsePowerShell>
)。
在撰写本文时,生成的 powershell 脚本忽略了 AllowUntrustedCertificate
属性 这可能是一个错误,因此需要将其设置为 False
.
如果您在 .ps1
文件中 update the module version,您可以让 powershell 工作。
附带说明一下,您还可以通过 "trusting" 本地服务器的证书来解决此问题。
对于 dot net core 1.0,您必须添加标签
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
在您的 .pubxml 文件中发布配置文件
更新
稍微观察一下,在 VS2015 或 VS2017 社区上部署 .net 核心应用程序时,到远程 IIS 服务器请使用此
<UsePowerShell>True</UsePowerShell>
没有
<UsePowerShell>False</UsePowerShell>
发现部署成功完成,但在我将标记更改为 true 之前没有文件复制到服务器。
我希望这对某人有所帮助。
对我来说,解决方案在发布配置文件中占用了 4 行 xml。
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<UseMsDeployExe>true</UseMsDeployExe>
<UserName>myuser</UserName>
<Password>mypass</Password>
UseMsDeployExe
将错误更改为忽略证书,但不对用户进行身份验证,因此需要用户和通行证(您要部署到的机器)
powershell 脚本中不需要任何更改。
我有 <UsePowerShell>True</UsePowerShell>
但它仍然因证书错误而失败。
- 我在设置对话框中重新输入了密码,但仍然失败
- 单击验证连接后,它开始工作。
备注
- VS 2017 (15.2)
- 我的密码最近更改了
- 作为测试,输入了 错误的 密码,我得到了证书错误,所以证书错误显然不仅仅是一个不受信任的证书
另一种解决方案
我在远程 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) 并且不存储普通密码。
导入或创建配置文件后,单击配置,然后验证连接。输入密码并完成设置。现在部署。
还有一个解决方案
我在 VS2019 中部署 Azure Web 作业时遇到了同样的问题。详情请看我的回答
对于 VS 2019 中的 dotnet 3.1.0,只需转到 "Edit" 配置文件 -> 验证连接 -> 接受证书并完成
将此行添加到您的发布配置文件中,该配置文件存在于所附图片中的路径中
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
#2。在 pubxml 中设置此 属性,它应该始终如一地工作:
正确
(在 Properties\PublishProfiles