it-swarm.com.ru

Как мне восстановить пропавший IIS Экспресс SSL сертификат?

После настройки HTTPS в IIS Express, в соответствии с такими статьями, как this и this , я не могу загрузить сайт IIS Express с использованием HTTPS. В Chrome я получаю только:

Эта веб-страница недоступна (с кодом ошибки "ERR_CONNECTION_RESET")

... а в Т.Е. я получаю только:

Internet Explorer не может отобразить веб-страницу

... когда я следую указаниям в этих статьях.

Похоже, это связано с тем, что «Сертификат разработки IIS Express», который автоматически устанавливается IIS Express, был удален. Как мне переустановить этот сертификат?

116
Chris Simmons

После перехода на «Установка и удаление программ» и выбора «Восстановить» в IIS Express сертификат был переустановлен, и теперь я могу запускать IIS Express сайты с использованием HTTPS.

Repair IIS Express

Сертификат вернулся:

IIS Express Development Certificate

И теперь я могу запустить IIS Express-сайт, используя HTTPS:

Success!

171
Chris Simmons

В Visual Studio 2015, IIS Express 10, Windows 10 эти параметры не работали для меня. IIS У Express 10 не было варианта ремонта.

Мне удалось решить проблему с помощью команды IisExpressAdminCmd.exe, доступной в C:\Program Files (x86)\IIS Express.

Из командной строки с повышенными правами выполните:

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:urlToYourSite -UseSelfSigned

Замена urlToYourSite на ваш URL.

например.

cd C:\Program Files (x86)\IIS Express
IisExpressAdminCmd.exe setupsslUrl -url:https://localhost:44387/ -UseSelfSigned

После этого я закрыл IIS Express и перезапустил мой сайт из Visual Studio, и он предложил автоматически доверять самозаверяющему сертификату.

Надеюсь, это поможет.

117
Bernie White

Иногда эта ошибка связана с тем, что для локального хоста установлен сертификат different. В этом случае нет необходимости восстанавливать IIS Express-сертификат. Вместо этого вы можете сделать следующее, чтобы указать IIS Express использовать ваш существующий сертификат:

  1. Откройте оснастку «Сертификаты» MMC, как описано здесь
  2. Найдите свой локальный сертификат, например, в разделе Личные ... Свидетельства и получить его отпечаток:
    1. Откройте диалоговое окно свойств для сертификата localhost и найдите свойство Thumbprint.
    2. Вставьте значение отпечатка в Блокнот (или что-то еще) и удалите пробелы и любые специальные символы в начале
  3. Найдите значение порта вашего IIS проекта Express:
    1. Перейдите к свойствам проекта в Visual Studio и найдите значение «SSL URL», например, " https: // localhost: 44300/MyApp ". 
    2. В этом примере 44300 - это номер порта. Если у вас другое значение, измените это значение в последующих командах.
  4. Используйте следующие команды в командной строке администратора (не Powershell):

netsh http delete sslcert ipport=0.0.0.0:44300

netsh http add sslcert ipport=0.0.0.0:44300 certhash=your_cert_hash_with_no_spaces appid= {123a1111-2222-3333-4444-bbbbcccdddee}

Guid в приведенной выше команде может быть заменен на тот, который вы генерируете. Он не соответствует никаким существующим IIS значениям Express.

Для получения дополнительной информации см. Обработка ошибок привязки URL в IIS Express .

30
explunit

Также обратите внимание, что для IIS Express для работы с SSL используемый порт должен находиться в диапазоне от 44300 до 44399 ( http://www.iis.net/learn/extensions/using-iis-express/ Выполнение-iis-express-без административных привилегий ).

Поэтому, если вы используете IIS Express в Visual Studio, убедитесь, что выбранный порт находится в требуемом диапазоне: vs настройка для iis express

27
Shiraz

С новым Chrome 58 ничего из ответов ниже не поможет. Я только что потратил 1 час на удаление/переустановку сертификатов и пытался выяснить, в чем проблема. 

Очевидно, что Chrome 58 откажется от сертификата, потому что «missing_subjectAltName»

Решением является либо парольная фраза «badidea», либо, если вам нужно открыть всплывающие окна для входа, вы должны использовать:

хром: // флаги/# позволяют нестабильный-локальный

Источник и upvote принадлежит: https://stackoverflow.com/a/38926117/2089232 :)

11
milanio

Я хотел добавить это, потому что это смешно, но, возможно, это кому-то поможет. Имейте в виду, что я никогда раньше не открывал свойства своего проекта, поэтому я понятия не имею, как это произошло (я сам не менял это или не имел возможности сделать это), но в Project> Properties> Web мой URL-адрес SSL был указан как мой обычный URL но как http вместо https (ранее был https, потому что раньше он работал). Я прошел все шаги, перечисленные на этой странице, удалил VS, затем IIS и, наконец, заметил ошибку, которая должна была быть https: // mySSLURL (но в https отсутствовал s). Как только я изменил http на https, все снова заработало.

1
Elijah Tate

Вы можете переустановить IIS Express 10.0 (или любую другую нужную вам версию), чтобы исправить недостающий сертификат. Скачать с Microsoft здесь

0
TetraDev