Сначала пара моментов, которые, вероятно, одинаковы для вас
- Я пытался обновить сертификат, потому что срок его действия истек.
- У меня есть несколько доменов, привязанных к одному и тому же IP. Это сертификат SAN, но это, вероятно, не имеет значения.
- Я пытался использовать централизованное хранилище сертификатов. Опять же я думаю, что это не имеет отношения к большей части моего ответа.
- Я уже пытался обновить сертификат, но он не отображал новую дату.
- Возможно, вы сейчас в панике, если срок действия вашего старого сертификата уже истек. Сделай глубокий вдох ...
Во-первых, я бы настоятельно рекомендовал зайти https://www.digicert.com/help/
и загрузить их инструмент DigiCert. Вы также можете использовать его онлайн.
Войдите в свой веб-сайт, https://example.com
и он покажет вам дату истечения срока действия и отпечаток (что MS называет хэш сертификата). Он выполняет поиск в реальном времени, поэтому вам не нужно беспокоиться о том, кэширует ли ваш браузер (или промежуточный сервер) что-либо.
Если вы используете централизованное хранилище сертификатов, вы должны быть на 100% уверены, что файл .pfx является последней версией, поэтому перейдите в каталог вашего хранилища и выполните следующую команду:
C:\WEBSITES\SSL> certutil -dump www.example.com.pfx
Это покажет вам дату истечения срока действия и хэш / отпечаток. Очевидно, что если эта дата истечения срока действия неверна, вы, вероятно, просто экспортировали неправильный сертификат в файловую систему, поэтому сначала исправьте это.
Если вы используете CCS, то при условии, что эта команда certutil дает ожидаемую дату истечения срока действия (вашего обновленного сертификата), вы можете продолжить.
Запустите команду:
netsh http show sslcert > c:\temp\certlog.txt
notepad c:\temp\certlog.txt
Скорее всего, у вас есть много вещей, поэтому проще открыть их в текстовом редакторе.
Вы захотите найти в этом файле НЕДОСТАТОЧНЫЙ хеш, который вы получили digicert.com
(или отпечаток, полученный от Chrome).
Для меня это привело к следующему. Вы увидите, что он привязан к IP, а не к моему ожидаемому доменному имени. Это проблема. Кажется, что это (по какой-то причине я не уверен) имеет приоритет над набором привязок в IIS, для которого я только что обновил example.com
.
IP:port : 10.0.0.1:443
Certificate Hash : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check : Enabled
Revocation Freshness Time : 0
URL Retrieval Timeout : 0
Ctl Identifier : (null)
Ctl Store Name : (null)
DS Mapper Usage : Disabled
Negotiate Client Certificate : Disabled
Я даже не знаю, откуда взялась эта привязка - у меня даже нет привязок SSL на моем сайте по умолчанию, но этому серверу несколько лет, и я думаю, что что-то просто испортилось и застряло.
Итак, вы хотите удалить его.
Чтобы быть в безопасности, сначала нужно выполнить следующую команду, чтобы убедиться, что вы удаляете только один элемент:
C:\Windows\system32>netsh http show sslcert ipport=10.0.0.1:443
SSL Certificate bindings:
-------------------------
IP:port : 10.0.0.1:443
Certificate Hash : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check : Enabled
Revocation Freshness Time : 0
URL Retrieval Timeout : 0
Ctl Identifier : (null)
Ctl Store Name : (null)
DS Mapper Usage : Disabled
Negotiate Client Certificate : Disabled
Теперь мы убедились, что это «плохой» отпечаток, и ожидаем одну запись, которую мы можем удалить с помощью этой команды:
C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443
SSL Certificate successfully deleted
Надеемся, что если вы сейчас вернетесь к Digicert и еще раз выполните команду, она даст вам ожидаемый отпечаток сертификата. Вы должны проверить все имена SAN, если у вас есть, чтобы быть уверенным.
Наверное, хочу IISRESET здесь, чтобы не было никаких сюрпризов позже.
Последнее замечание: если вы используете централизованное хранилище сертификатов и видите странное поведение, пытаясь даже определить, берет ли он ваш сертификат оттуда или нет, не беспокойтесь - это не ваша вина. Иногда кажется, что сразу же появляются новые файлы, но кешируются старые. Открытие и восстановление привязки SSL после внесения каких-либо изменений, кажется, сбрасывает ее, но не в 100% случаев.
Удачи :-)
[::1]:443
тогда как обновление сертификата в IIS только обновило запись для0.0.0.0:443
. Спасибо!Проверьте сертификат, который привязан к сайту в IIS. Вы можете щелкнуть правой кнопкой мыши на сайте и выбрать редактировать привязки. Там вы должны увидеть привязку для порта 443, который связан с сертификатом SSL. Это все еще может указывать на старый.
источник
Я просто решил это. Сервер фактически находился за ISA-сервером, поэтому нам также пришлось установить новый сертификат SSL на ISA-сервер.
источник
У меня была та же проблема, и я проверил привязки. У меня было установлено 2 приложения в IIS, одно использовало новый сертификат, одно использовало старый.
Чтобы исправить, мне пришлось полностью удалить сертификат с сервера (затем, возможно, перезагрузить компьютер).
В диспетчере IIS -> (значок корня дерева IIS) -> Сертификаты сервера выберите старый сертификат и нажмите «Удалить» на панели «Действия».
источник
Я испытал это во время обновления IPv6. У меня был IIS, обеспечивающий перенаправление на случай, если кто-то попытается получить доступ к сервису через HTTP, который на самом деле не был основан на веб-сервере. Я обновил фактическую службу (голосовой сервер), чтобы она была IPv6, однако мне не удалось обновить привязки для перенаправления, чтобы включить адреса IPv6.
Это привело к тому, что резолюции перешли на глобально привязанный улов всех сайтов, на которых был устаревший сертификат. Так как все уловили просто 404, оказалось, что сайт не работает, хотя в действительности он попадает не на тот сайт.
источник
В случае, если кто-то все еще сталкивается с этой проблемой. Моя была решена, перейдя в
Затем вы найдете файл web.config, откройте его с помощью блокнота и удалите строку с
Сохраните и попробуйте снова получить доступ к локальному или корневому сайту вашего IIS-сервера.
источник