Iis 7 все еще обслуживает старый сертификат ssl
Сначала пара моментов, которые, вероятно, одинаковы для вас
- Я пытался обновить сертификат, потому что срок его действия истек.
- У меня есть несколько доменов, привязанных к одному и тому же IP. Это сертификат SAN, но это, вероятно, не имеет значения.
- Я пытался использовать централизованное хранилище сертификатов. Опять же я думаю, что это не имеет отношения к большей части моего ответа.
- Я уже пытался обновить сертификат, но он не отображал новую дату.
- Возможно, вы сейчас в панике, если срок действия вашего старого сертификата уже истек. Сделай глубокий вдох …
Во-первых, я бы настоятельно рекомендовал зайти https://www.digicert.com/help/и загрузить их инструмент DigiCert. Вы также можете использовать его онлайн.
Войдите в свой веб-сайт, https://example.comи он покажет вам дату истечения срока действия и отпечаток (что MS называет хэш сертификата). Он выполняет поиск в реальном времени, поэтому вам не нужно беспокоиться о том, кэширует ли ваш браузер (или промежуточный сервер) что-либо.
Если вы используете централизованное хранилище сертификатов, вы должны быть на 100% уверены, что файл .pfx является последней версией, поэтому перейдите в каталог вашего хранилища и выполните следующую команду:
C:WEBSITESSSL> certutil -dump www.example.com.pfx
Это покажет вам дату истечения срока действия и хэш / отпечаток. Очевидно, что если эта дата истечения срока действия неверна, вы, вероятно, просто экспортировали неправильный сертификат в файловую систему, поэтому сначала исправьте это.
Если вы используете CCS, то при условии, что эта команда certutil дает ожидаемую дату истечения срока действия (вашего обновленного сертификата), вы можете продолжить.
Запустите команду:
netsh http show sslcert > c:tempcertlog.txt
notepad c:tempcertlog.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:Windowssystem32>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:Windowssystem32>netsh http delete sslcert ipport=10.0.0.1:443
SSL Certificate successfully deleted
Надеемся, что если вы сейчас вернетесь к Digicert и еще раз выполните команду, она даст вам ожидаемый отпечаток сертификата. Вы должны проверить все имена SAN, если у вас есть, чтобы быть уверенным.
Наверное, хочу IISRESET здесь, чтобы не было никаких сюрпризов позже.
Последнее замечание: если вы используете централизованное хранилище сертификатов и видите странное поведение, пытаясь даже определить, берет ли он ваш сертификат оттуда или нет, не беспокойтесь – это не ваша вина. Иногда кажется, что сразу же появляются новые файлы, но кешируются старые. Открытие и восстановление привязки SSL после внесения каких-либо изменений, кажется, сбрасывает ее, но не в 100% случаев.
Удачи 🙂
Проверка правильности установки ssl сертификата онлаин. справочные материалы по установке и использованию сертификатов безопасности ssl
Пользователи с серверами Windows могут иногда сталкиваться с проблемой, когда импортируемый сертификат исчезает
из списка сертификатов сервера. Чаще всего это происходит сразу после завершения запроса сертификата в диспетчере
служб IIS или консоли управления Exchange и обновления списка сертификатов.
Списки сертификатов сервера в IIS и EMC содержат только сертификаты, которые назначаются соответствующему закрытому ключу и
генерируются вместе с запросом подписи сертификата (CSR), используемым для активации конкретного сертификата.
Когда связь между сертификатом и закрытым ключом по какой-либо причине нарушена, сертификат исчезает.
Если вы удалили сертификат, соответствующий закрытый ключ остается на сервере.
Это означает, что сертификат можно импортировать обратно на сервер через MMC
Чтобы снова увидеть сертификат, вам необходимо принудительно установить связь между сертификатом и закрытым ключом,
выполнив следующие шаги:
- Войдите как администратор в консоль Microsoft Management Console (MMC) на своем сервере,
нажмите комбинацию Win R , введите mmc и нажмите OK .
- В меню « Файл» выберите « Добавить / удалить оснастку»

- В диалоговом окне « Добавить или удалить оснастки» выберите « Сертификаты» и нажмите « Добавить» .

- Выберите « Учетная запись компьютера» в окне оснастки «Сертификаты» , нажмите « Далее»

- Отметьте локальный компьютер в поле « Выбор компьютера» , затем нажмите « Готово» .

- Требуемая оснастка выделена. Нажмите кнопку « ОК» , чтобы продолжить. Теперь в консоли добавлена оснастка.

- Найдите сертификат, который был импортирован при заполнении запроса сертификата. Сертификат должен быть в Личном хранилище.
Обратите внимание, что значок сертификата рядом с доменным именем не имеет на нем ключа; это означает,
что никакой секретный ключ не присваивается сертификату.
- Дважды щелкните сертификат и перейдите на вкладку « Сведения ».
- В информации о сертификате найдите поле Серийный номер , щелкните по нему и скопируйте его значение.

- Откройте командную строку, нажмите клавишу Win R и введите cmd , затем нажмите OK.
- В командной строке введите: certutil -repairstore my Serial_number с шага 9
Примечание. Убедитесь, что серийный номер вашего сертификата не содержит пробелов. Это должна быть одна строка символов.

Если вы получаете сообщение «CertUtil: -repairstore command FAILED: 0x80090010», это означает, что запрос
сертификата был сгенерирован на другом сервере, а закрытый ключ отсутствует на этом.
Вам нужно либо импортировать ключ на свой сервер через файл PFX, либо создать новый код CSR и переиздать сертификат . - Обновите список сертификатов в хранилище личных сертификатов в вашей MMC. Значок сертификата должен иметь ключ на нем.

Кроме того, если вы дважды щелкните сертификат, вы увидите сообщение: «У вас есть закрытый ключ, соответствующий этому сертификату».

Теперь вы можете обновить список сертификатов сервера в диспетчере IIS или консоли управления Exchange, чтобы увидеть там сертификат.
