Публикация с Visual Studio 2015 - разрешить ненадежные сертификаты
Я публикую проект ASP.NET 5 MVC6 из Visual Studio 2015. Я импортировал профиль публикации с моего сервера. Соединение проверяется успешно, однако при публикации моего проекта у меня есть следующая ошибка:
ERROR_CERTIFICATE_VALIDATION_FAILED
Подключено к удаленному компьютеру ( "XXXXXXXXX" ) с использованием указанного процесса ( "Служба веб-управления" ), но не удалось проверить сервер сертификат. Если вы доверяете серверу, подключитесь снова и разрешите ненадежные сертификаты.
Невозможно разрешить недопустимые сертификаты при публикации настроек.
Ответы
Ответ 1
Опция разрешить ненадежные сертификаты пока не поддерживается в текущем инструменте. Надеюсь, это скоро будет обновлено. Однако вы можете установить его вручную.
- Откройте файл профиля публикации (
.pubxml
) внутри/Свойства/PublishProfiles в текстовом редакторе
- Внутри элемента
<PropertyGroup>
установите AllowUntrustedCertificate в значение True (<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
) или добавьте его, если он не существует
- Установите UsePowerShell в значение False (
<UsePowerShell>False</UsePowerShell>
).
В это время написания сгенерированная powershell script игнорирует свойство AllowUntrustedCertificate
, которое, вероятно, является ошибкой, следовательно, необходимо установить его на False
.
Вы можете заставить powershell работать, если обновить версию модуля в файле .ps1
.
В качестве дополнительной заметки вы также можете обойти эту проблему, "локально доверяя" сертификату сервера.
Ответ 2
Для точки net core 1.0 вам нужно добавить тег
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
опубликовать профили в файле .pubxml
Ответ 3
Для меня решение взяло 4 строки в файле публикации xml.
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<UseMsDeployExe>true</UseMsDeployExe>
<UserName>myuser</UserName>
<Password>mypass</Password>
UseMsDeployExe
изменяет ошибку, чтобы игнорировать сертификат, но не аутентифицировать пользователя, следовательно, потребность пользователя и пропуск (от машины, на которую вы развертываете)
В powershell script изменений не потребовалось.
Ответ 4
У меня был <UsePowerShell>True</UsePowerShell>
, но он все еще терпел неудачу с ошибкой cert.
- Я снова ввел свой пароль в диалоговом окне настроек и все еще не удалось
- Как только я нажал кнопку Подтвердить подключение, он начал работать.
![Диалог настройки публикации]()
Примечание
- VS 2017 (15.2)
- Недавно изменен мой пароль.
- В качестве теста введите неправильный пароль, и я получил ошибку сертификата, поэтому ошибка сертификата - это не только ненадежный сертификат, видимо
Ответ 5
Обновление
Просто небольшое наблюдение при развертывании основного приложения .net на VS2015 или VS2017 на удаленном сервере IIS, пожалуйста, используйте этот
<UsePowerShell>True</UsePowerShell>
не
<UsePowerShell>False</UsePowerShell>
Обнаружено, что развертывание завершено как успешное, но файлы не были скопированы на сервер, пока я не изменил тег на true.
Я надеюсь, что это поможет кому-то.
Ответ 6
Еще одно решение
Я создал параметры публикации на удаленном IIS и импортировал их в Visual Studio 2017 (15.2).
После этого я изменил URL-адрес, чтобы указать имя файла, так как пользователь IIS имеет доступ только к определенному сайту (благодаря этому ответ на SO).
Я ввел учетные данные с помощью пользовательского интерфейса, и нет необходимости хранить пароль в профиле.
Мой профиль выглядит следующим образом:
<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) и отсутствие хранения простых паролей.