Очень похожий ответ на @IsolatedStorage, но с более подробной информацией о том, что мне помогло.
Сначала пара моментов, которые, вероятно, одинаковы для вас
- Я пытался обновить сертификат, потому что срок его действия истек.
- У меня несколько доменов, привязанных к одному 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% случаев.
Удачи :-)
person
Simon_Weaver
schedule
08.04.2016