Як відновити відсутній сертифікат 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.