Как восстановить отсутствующий сертификат IIS Express SSL?

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

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

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

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

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

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

Ответ 1

После перехода на "Установка и удаление программ" и выбора опции "Ремонт" в IIS Express сертификат был переустановлен, и теперь я могу запускать сайты IIS Express с помощью HTTPS.

Repair IIS Express

Возврат сертификата:

IIS Express Development Certificate

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

Success!

Ответ 2

Для 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, и ему было предложено автоматически доверять самозаверяющемуся сертификату.

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

Ответ 3

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

  • Откройте оснастку MMC сертификатов, как описано здесь
  • Найдите свой сертификат localhost, например. под Личным... Сертификаты и получить свой отпечаток:
    • Подготовьте диалог свойств для сертификата localhost и найдите свойство Thumbprint
    • Вставьте значение отпечатка в блокнот (или что-то еще) и удалите пробелы и любые специальные символы в начале
  • Найдите значение порта вашего проекта IIS Express:
    • Перейдите к свойствам проекта в Visual Studio и найдите значение "URL-адрес SSL", например. " https://localhost:44300/MyApp".
    • В этом примере 44300 - номер порта. Если у вас другое, измените это значение в более поздних командах.
  • Используйте следующие команды в командной строке администрирования (не 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}

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

Подробнее см. Обработка ошибок привязки URL-адресов в IIS Express.

Ответ 4

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

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

Ответ 5

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

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

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

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

Источник есть, а upvote принадлежит: fooobar.com/questions/12817/...:)

Ответ 6

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

Ответ 7

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