Вопрос или проблема
HTTPS сайт под управлением IIS. Промежуточный сертификат был обновлён компанией с тем же ключом. Старый, устаревший сертификат хранился на сервере, и IIS использовал его (что приводило к фактически недействительной цепочке доверия). Обновлённый промежуточный сертификат доступен по CA Issuer
URL в расширении Authority Information Access
(AIA) сертификата сайта, но не каждый HTTPS клиент поддерживает AIA. Chrome и Schannel поддерживают, но OpenSSL и urllib3 нет.
Я решил это довольно непростым способом. Я скачал и установил обновлённый промежуточный сертификат, удалил старый из хранилища, затем удалил и заново создал привязку HTTPS на сайте в IIS. Вопрос: есть ли более простой способ? Простая установка нового сертификата в хранилище машины/промежуточный не сработала.
Ответ или решение
Обновление промежуточного сертификата в IIS
Обновление промежуточного сертификата на веб-сервере, работающем под управлением Internet Information Services (IIS), может оказаться сложной задачей, особенно если вы сталкиваетесь с проблемами, связанными с доверительной цепочкой. В данной статье мы рассмотрим наиболее эффективные методы обновления промежуточного сертификата с максимальным учетом вашего опыта.
Проблема
Ваша HTTPS-страница была настроена с использованием старого промежуточного сертификата, который был заменён, но с тем же ключом. Старый сертификат оставался в системе, что приводило к нестабильной цепочке доверия. Хотя новое промежуточное удостоверение доступно через URL CA Issuer в расширении Authority Information Access (AIA) вашего сертификата сайта, не все HTTPS-клиенты выполняют "AIA-чейзинг", что приводит к проблемам с валидностью сертификатов.
Предложенное Решение
Хотя вы уже использовали метод с удалением старого сертификата, установкой нового и пересозданием HTTPS-привязки в IIS, существуют альтернативные шаги, которые могут быть более удобными и менее трудоемкими.
-
Проверка Установленных Сертификатов:
- Убедитесь, что новый промежуточный сертификат установлен в "Доверенные промежуточные центры сертификации" (Trusted Intermediate Certification Authorities) на вашем сервере.
- Откройте
certlm.msc
и проверьте, отображается ли новый сертификат корректно и активен ли он.
-
Использование PowerShell для Обновления:
- Вы можете воспользоваться PowerShell для обновления сертификатов. Запустите следующие команды, чтобы проверить установленные сертификаты и удалить старые. Это значительно упрощает процесс.
# Проверка текущих сертификатов Get-ChildItem -Path Cert:\LocalMachine\CA # Удаление старого сертификата $cert = Get-ChildItem -Path Cert:\LocalMachine\CA | Where-Object { $_.Thumbprint -eq "OLD_CERT_THUMBPRINT" } Remove-Item $cert.PSPath
-
Перезагрузка IIS:
- После удаления старого сертификата и установки нового, важно перезапустить IIS, чтобы изменения вступили в силу. Это можно выполнить с помощью команды:
iisreset
-
Проверка Конфигурации Биндинга:
- Убедитесь, что ваш сайт в IIS использует правильный сертификат. Чтобы сделать это:
- Откройте «Диспетчер IIS».
- Перейдите к вашему сайту, выберите «Привязки» (Bindings).
- Убедитесь, что выбранный сертификат соответствует новому промежуточному сертификату.
- Убедитесь, что ваш сайт в IIS использует правильный сертификат. Чтобы сделать это:
Заключение
Обновление промежуточного сертификата в IIS может быть выполнено проще, чем через ручное удаление старого и добавление нового сертификата с последующим уничтожением и созданием HTTPS-привязки. Автоматизация этого процесса с помощью PowerShell и правильная проверка установленных сертификатов обеспечат более гладкий и эффективный процесс поддержки сертификатов безопасности на вашем сервере.
В будущем, для предотвращения подобных ситуаций, рекомендуется регулярно проверять обновления уровня сертификатов и их конфигурацию. Надеемся, что эти рекомендации помогут вам в управлении сертификатами и обеспечении надежной работы вашего веб-сервиса.