Как восстановить отсутствующий сертификат IIS Express SSL?
После настройки HTTPS в IIS Express, в соответствии с такими статьями, как это и это , я не могу фактически загрузить сайт IIS Express с помощью HTTPS. В Chrome я только получаю:
Эта веб-страница недоступна (с кодом ошибки «ERR_CONNECTION_RESET»)
… и в IE я только получаю:
- ошибка получения: «Ошибка: ошибка SSL: SELF_SIGNED_CERT_IN_CHAIN» при использовании npm
- Программно создавать сертификат X509 с использованием OpenSSL
- Как игнорировать создание пути PKIX не удалось: sun.security.provider.certpath.SunCertPathBuilderException?
- Получено фатальное предупреждение: handshake_failure через SSLHandshakeException
- Подписанный SSL-сертификат третьей стороны для localhost или 127.0.0.1?
Internet Explorer не может отобразить веб-страницу
… когда я следую указаниям в этих статьях.
Похоже, что это связано с тем, что «Сертификат разработки IIS Express», который устанавливается IIS Express автоматически, был удален. Как восстановить этот сертификат?
- Java: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти допустимый путь сертификации для запрошенной цели
- Использование SSL и SslStream для одноранговой аутентификации?
- Преобразование Java Keystore в формат PEM
- Могу ли я отключить ошибку / предупреждение сертификата в Firefox / Chrome / Internet Explorer?
- Использование самозаверяющего сертификата с .NET HttpWebRequest / Response
- Как добавить самозаверяющий сертификат в качестве исключения в Chrome?
- Сертификат клиента SSL в Maven
- проверка сертификата сервера не удалась. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
После перехода на «Установка и удаление программ» и выбора опции «Ремонт» в IIS Express сертификат был переустановлен, и теперь я могу запускать сайты IIS Express с помощью HTTPS.
Сертификат вернулся:
И теперь я могу запустить сайт IIS Express с помощью HTTPS:
Для 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, и он попросил автоматически доверять самозаверяющему сертификату.
Надеюсь, это поможет.
Иногда эта ошибка возникает из-за другого сертификата, установленного для 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 .
Также обратите внимание, что для IIS Express для работы с SSL используемый порт должен находиться в диапазоне от 44300 до 44399 ( http://www.iis.net/learn/extensions/using-iis-express/running-iis-express- без административных привилегий ).
Итак, если вы используете IIS Express в Visual Studio, убедитесь, что выбранный порт находится в требуемом диапазоне: vs для iis express
С новым Chrome 58 ничто из приведенных ниже ответов не поможет. Я только что потратил 1 час на удаление / переустановку сертификатов и попытку выяснить, в чем проблема.
Очевидно, Chrome 58 откажется от сертификата, потому что «missing_subjectAltName»
Решение является либо «badidea» passphrase, либо если вам нужно открывать всплывающие windows для входа, которые вы должны использовать:
хром: // флаги / # позволяют нестабильный-локальный
Источник есть, и upvote принадлежит: https://stackoverflow.com/a/38926117/2089232 🙂
Я хотел добавить это, потому что это смешно, но, возможно, это поможет кому-то. Имейте в виду, что я никогда раньше не открывал свойства проекта, поэтому я понятия не имею, как это произошло (я сам не изменил это или не имел возможности), но в Project> Properties> Web мой URL-адрес SSL был указан как обычный URL-адрес но как http вместо https (ранее был https, потому что он работал раньше). Я прошел все шаги, перечисленные на этой странице, удалил VS, затем IIS и, наконец, заметил ошибку, которая должна была быть https: // mySSLURL (но не хватало s в https). Как только я сменил http на https, все сработало снова.