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

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

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

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

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

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

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

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

Ремонт IIS Express

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

Сертификат развития IIS Express

И теперь я могу запустить сайт 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 использовать существующий сертификат:

  1. Откройте оснастку MMC сертификатов, как описано здесь.
  2. Найдите свой сертификат localhost, например, под личным … Сертификаты и получите свой отпечаток:
    1. Подготовьте диалог свойств для сертификата localhost и найдите свойство Thumbprint
    2. Вставьте значение отпечатка в блокнот (или что-то еще) и удалите пробелы и любые специальные символы в начале
  3. Найдите значение порта вашего проекта IIS Express:
    1. Перейдите в свойства проекта в Visual Studio и найдите значение «URL-адрес SSL», например « 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}

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

  • Самостоятельный SSL-сертификат Tomcat Server / Client
  • как добавить терминологическое имя объекта в ssl certs?
  • Как создать самозаверяющий сертификат с помощью SubjectAltName с помощью OpenSSL?
  • Можно ли динамически вернуть сертификат SSL в NodeJS?
  • Java: загрузка SSL Keystore через ресурс
  • Как исправить ошибку «java.security.cert.CertificateException: нет альтернативных имен объектов»?
  • Как сказать Maven игнорировать ошибки SSL (и доверять всем сертификатам)?
  • Trust Anchor не найден для подключения SSL для Android
  • Как настроить SSL-сертификат для сервера express.js?
  • Ошибка SSL: certificate_verify_failed при очистке https://www.thenewboston.com/
  • Самоподписанный SSL-прием на Android
  • Давайте будем гением компьютера.