Как восстановить отсутствующий сертификат IIS Express SSL?
После настройки HTTPS в IIS Express, в соответствии с такими статьями, как эта и эта, я не могу на самом деле загрузить сайт IIS Express с использованием HTTPS. В Chrome я получаю только:
Эта веб-страница недоступна (с кодом ошибки "ERR_CONNECTION_RESET")
... а в IE я получаю только:
Internet Explorer не может отобразить веб-страницу
... когда я следую указаниям в этих статьях.
По-видимому, это связано с тем, что "Сертификат разработки IIS Express", который автоматически устанавливается IIS Express, был удален. Как мне переустановить этот сертификат?
10 ответов
После перехода на "Установка и удаление программ" и выбора "Восстановить" в 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, и он предложил автоматически доверять самозаверяющему сертификату.
Надеюсь, это поможет.
Также обратите внимание, что для работы IIS Express с SSL используемый порт должен находиться в диапазоне от 44300 до 44399 ( http://www.iis.net/learn/extensions/using-iis-express/running-iis-express-without-administrative-privileges).
Итак, если вы используете IIS Express в Visual Studio, убедитесь, что выбранный порт находится в требуемом диапазоне: vs настройка для iis express
Иногда эта ошибка происходит из-за другого сертификата, установленного для localhost. Если это так, нет необходимости восстанавливать сертификат IIS Express. Вместо этого вы можете сделать следующее, чтобы IIS Express использовал существующий сертификат:
- Откройте оснастку MMC "Сертификаты", как описано здесь.
- Найдите свой сертификат localhost, например, в разделе Личные... Сертификаты и получите его отпечаток:
- Откройте диалоговое окно свойств для сертификата localhost и найдите свойство Thumbprint.
- Вставьте значение отпечатка в Блокнот (или что-то еще) и удалите пробелы и любые специальные символы в начале
- Найдите значение порта вашего проекта IIS Express:
- Перейдите к свойствам проекта в Visual Studio и найдите значение "SSL URL", например " 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}
Guid в приведенной выше команде может быть заменен на тот, который вы генерируете. Он не соответствует ни одному из существующих значений IIS Express.
Дополнительные сведения см. В разделе " Обработка ошибок привязки URL-адресов в IIS Express".
С новым Chrome 58 ничего из ответов ниже не поможет. Я только что потратил 1 час на удаление / переустановку сертификатов и пытался выяснить, в чем проблема.
Очевидно, что Chrome 58 откажется от сертификата, потому что "missing_subjectAltName"
Решением является либо парольная фраза "badidea", либо, если вам нужно открыть всплывающие окна для входа, вы должны использовать:
хром:// флаги /# позволяют нестабильный-локальный
Источник и upvote принадлежит: /questions/36571324/poluchenie-chrome-dlya-prinyatiya-samozaveryayuschego-sertifikata-localhost/36571345#36571345:)
Я хотел добавить это, потому что это смешно, но, возможно, это кому-то поможет. Имейте в виду, что я никогда раньше не открывал свойства своего проекта, поэтому я понятия не имею, как это произошло (я сам не менял это или не имел возможности сделать это), но в Project > Properties > Web мой URL-адрес SSL был указан как мой обычный URL но как http вместо https (ранее был https, потому что раньше он работал). Я прошел все шаги, перечисленные на этой странице, удалил VS, затем IIS и, наконец, заметил ошибку, которая должна была быть https: // mySSLURL (но в https отсутствовал s). Как только я изменил http на https, все снова заработало.
У меня возникла эта проблема после обновления VS 2017 до последней версии (версий) и создания нового (.Net) проекта MVC/WebAPI (из шаблона). Я смог исправить это, настроив номера портов в правильном диапазоне.
Диапазоны портов Chorme по умолчанию для DEV SSL
Что мне удалось найти здесь: https://www.pluralsight.com/guides/visual-studio-2017-resolving-ssl-tls-connections-problems-with-iis-express
Надеюсь это поможет!
Вы можете переустановить IIS Express 10.0 (или любую другую нужную вам версию), чтобы исправить отсутствующий сертификат. Скачать с Microsoft можно здесь
В 2023 году официальные документы MS указывают на эту статью SO... В любом случае они рекомендуют это:
dotnet dev-certs https --clean
dotnet dev-certs https --trust
Для меня восстановление Visual Studio с помощью установщика устранило проблему.