Как восстановить отсутствующий сертификат 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 можно здесь