Як відновити відсутній сертифікат SSS IIS Express?


134

Після налаштування HTTPS в IIS Express, відповідно до таких статей, як ця та ця , я не можу фактично завантажити сайт IIS Express за допомогою HTTPS. У Chrome я отримую лише:

Ця веб-сторінка недоступна (з кодом помилки "ERR_CONNECTION_RESET")

... і в IE я отримую лише:

Internet Explorer не може відображати веб-сторінку

... коли я дотримуюся вказівок у цих статтях.

Здається, це пов'язано з тим, що "Сертифікат розвитку IIS Express", який IIS Express встановлює автоматично, був видалений. Як мені цей сертифікат перевстановити?


2
Також мені траплялося намагатися запустити IISExpress на порт 443 (або фактично на будь-який порт поза діапазоном 44300-44399)
Джерардо Гриньолі

Примітка: прийнята відповідь на це питання застосовна навіть тоді, коли сертифікат локального господаря IIS Express присутній і, здається, добре.
haymansfield

Відповіді:


193

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

Ремонт IIS Express

Сертифікат повернувся:

Сертифікат розвитку IIS Express

Тепер я можу запустити сайт IIS Express за допомогою HTTPS:

Успіху!


1
Для мене теж працює, але в моєму випадку сертифікат був там. Не знаю чому, але це призвело до тієї ж помилки. Тож я видалив сертифікат, "ремонт" перевстановив цю спинку і вуаля. Дуже дякую.
Дарій

37
Примітка для користувачів Windows 10: Ремонт виконується лише на панелі керування, а не в додатку Додати програми видалення. Блискуча ідея msft.
Кріс Вебер

1
Набагато швидший спосіб - запустити Jexus Manager та створити новий сертифікат, а потім прив’язати до свого сайту. jexusmanager.com Звичайно, він ще не виправляє пошкоджені прив’язки сертифікатів, і я побачу, як зробити цю функцію одним клацанням миші.
Лекс Лі

Ремонт працює, але мені довелося видалити всі існуючі сертифікати за допомогою MMC. Проблема, з якою я зіткнувся, полягала в тому, що я не видаляла їх як адміністратора з localMachine. Переконайтеся, що ви запускаєте MMC із підвищеними дозволами!
ranieuwe

6
Примітка для користувачів VS2019: "Ремонт" не працюватиме, оскільки інсталятор Visual Studio не розміщує файл MSI там, де Панель управління очікує його. Однак _package.json у тому самому каталозі є файл, який містить URL-адресу файлу MSI. Ви можете запустити це вручну або скопіювати його там, де очікує панель управління.
Кріс Р. Доннеллі

156

Для 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
Це працювало для мене, намагаючись запустити IISExpress на порт 443. +1
Gerardo Grignoli

Це рішення чудово працювало для мене. Windows 10, Visual Studio 2015, IIS Express 10.
Glenn

1
Якщо хтось тут має проблеми з отриманням певного порту, який використовується IIS Express, ви можете перевірити, чи є у когось сайт, зареєстрований у IIS, використовуючи цей порт. Це був мій день сьогодні.
Кріс Марісіч

2
У Windows 10 IIS Express має можливість відновлення. Вам потрібно пройти через Панель управління. Прийнята відповідь спрацювала на мене.
joerage

1
Якщо ви втомилися використовувати командний рядок, ви можете скористатися програмою Jexus Manager, щоб зробити те саме, blog.lextudio.com/…
Lex Li

40

Іноді ця помилка пов’язана з іншим сертифікатом, встановленим для localhost. У такому випадку відновлювати сертифікат IIS Express не потрібно. Натомість ви можете зробити наступне, щоб сказати IIS Express використовувати існуючий сертифікат:

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


2
Більш наочним способом є використання Jexus Manager, blog.lextudio.com/…, тоді вам не потрібно пам’ятати такі деталі, як хеш сертифікатів.
Lex Li

якщо ви отримали "Параметр невірний". помилка - спочатку скористайтеся цим додатком, а потім церташем. Приклад: netsh http add sslcert ipport = 0.0.0.0: 44300 appid = {C21B9F4D-2A5D-4160-81C8-FBCC3EFC335E} certhash = your_cert_hash_with_no_spaces
gmsi

36

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

Отже, якщо ви використовуєте IIS Express у Visual Studio, переконайтесь, що вибраний порт знаходиться в необхідному діапазоні: порівняно з налаштуванням для iis express


3
Мені вдалося використати порт поза цим діапазоном після використання команди у відповіді Берні Вайта без проблем. Windows 10 / Visual Studio Community 2015 / .Net Core 1.0.1 / IIS Express 10.0
Ryan Thomas

1
Дякую! Це вирішило для мене питання. Дивно, що Visual Studio не попереджає про це.
Ервін Майєр

4
44300-44399 - це лише діапазон портів за замовчуванням із відображеним сертифікатом. Ви можете легко створити подібне відображення сертифікатів, зателефонувавши netshабо просто скористайтеся Jexus Manager, blog.lextudio.com/…
Lex Li

12

З новим Chrome 58 нічого з відповідей нижче не допоможе. Я щойно витратив 1 годину на видалення / перевстановлення сертифікатів і намагався з’ясувати, де проблема.

Мабуть, Chrome 58 відмовиться від сертифіката, оскільки "missing_subjectAltName"

Рішення - або пропускна фраза "badidea", або якщо вам потрібно відкрити спливаючі вікна для входу, ви повинні використовувати:

chrome: // прапори / # дозволити-незахищено-localhost

Джерело є, а оновлення належить: https://stackoverflow.com/a/38926117/2089232 :)



1
Також дивіться blog.lextudio.com/…
Lex Li

2

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



0

Щойно у мене виникла ця проблема після оновлення моєї VS 2017 до останньої версії та створено новий (.Net) проект MVC / WebAPI (з шаблону). Мені вдалося це виправити, налаштувавши мої порти на відповідні діапазони

Діапазони портів Chorme за замовчуванням для DEV SSL

Якого я зміг знайти тут: https://www.pluralsight.com/guides/visual-studio-2017-resolving-ssl-tls-connections-problems-with-iis-express

Сподіваюся, це допомагає!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.