Подтвердить что ты не робот

Публикация с Visual Studio 2015 - разрешить ненадежные сертификаты

Я публикую проект ASP.NET 5 MVC6 из Visual Studio 2015. Я импортировал профиль публикации с моего сервера. Соединение проверяется успешно, однако при публикации моего проекта у меня есть следующая ошибка:

ERROR_CERTIFICATE_VALIDATION_FAILED

Подключено к удаленному компьютеру ( "XXXXXXXXX" ) с использованием указанного процесса ( "Служба веб-управления" ), но не удалось проверить сервер сертификат. Если вы доверяете серверу, подключитесь снова и разрешите ненадежные сертификаты.

Невозможно разрешить недопустимые сертификаты при публикации настроек.

4b9b3361

Ответ 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) и отсутствие хранения простых паролей.