Как проверить сертификат на отзыв
Перейти к содержимому

Как проверить сертификат на отзыв

  • автор:

Средство командной строки Certutil.exe¶

Средство командной строки Certutil.exe используется для отображения информации о цифровых сертификатах, установленных в клиенте DirectAccess, на сервере DirectAccess или ресурсе интрасети.

Утилита Certutil обладает большим количеством функций, многие из которых описаны в статье Шпаргалка по certutil.

Просмотр сведений о сертификате¶

Для просмотра сведений о сертификате достаточно выполнить:

Так как сведения сертификата содержат много информации, для удобства лучше перенаправить вывод файл:

В примере рассматривается случай когда сертификат находится на рабочем столе. Весь вывод будет записан в файл cert-info.txt .

Подробнее о работе с командной строкой и перенаправлении вывода смотрите в разделе Работа с командной строкой данного руководства.

Проверка отзыва сертификата¶

Чтобы проверить открытый сертификат на отозванность, необходимо:

  1. Открыть командную строку «Пуск → Выполнить → cmd»;
  2. Ввести команду certutil -verify и указать путь до сертификата, например, certutil -verify 6654074390-632701001-613402108217.cer ;

Ввод команды certutil -verify

Будет показана информация о сертификате. В случае, если сертификат действующий, то будет выведено сообщение:

Проверка отзыва сертификата выполнена

В случае, если сертификат отозван, то будет выведено сообщение Сертификат ОТОЗВАН (причина=5) и код причины отзыва.

Сертификат ОТОЗВАН (причина=5)

Например, код причины 5 означает, что сертификат отозван по окончанию срока действия.

Проверка SSL-сертификатов на предмет отзыва

В наше время одним из самых важных аспектов безопасной передачи информации является шифрование. Данные при передаче от клиента к серверу зашифровываются с помощью SSL-сертификата. Сертификат – это публичный ключ, заверенный удостоверяющим центром.

Все SSL-сертификаты, как правило, выдаются на ограниченный срок, по окончании которого они теряют силу и должны быть переизданы. Однако бывают случаи, когда сертификат может быть отозван ещё до окончания срока действия. Причин на отзыв SSL-сертификата довольно много, самые распространённые из них – закрытый ключ был утерян или скомпрометирован, изменились регистрационные данные компании и т.п.

Существует 2 альтернативных способа проверить, находится ли SSL-сертификат в списках отзыва:

  • CRL (Certificate Revocation List) – проверяется наличие серийного номера сертификата в списке отзыва.
  • OCSP (Online Certificate Status Protocol) – сертификат отправляется на специализированный сервер, где проверяется его статус.

Скачаем сертификат интересующего нас домена:

Спасибо legioner за подсказку добавить параметр -servername — он необходим для правильного выбора сертификата, если на один IP-адрес их установлено несколько (SNI).

Смотрим детали сертификата:

Здесь нас интересует в разделе «X509v3 CRL Distribution Points» пункт «Full Name».

Скачиваем по этой ссылке список CLR:

Выдираем серийный номер сертификата:

Смотрим, есть ли этот номер в списке CRL:

Если ничего не нашлось, значит сертификат не является отозванным.

Выведем на экран сертификат интересующего нас домена и цепочки промежуточных (Intermediate) сертификатов:

Сохраним в файлы сертификат домена и промежуточный сертификат (код между строками ——BEGIN CERTIFICATE—— и ——END CERTIFICATE——):

Отправим запрос OCSP-серверу проверить сертификат на предмет отзыва:

Если всё указали правильно, то OCSP-сервер должен вернуть информацию по сертификату.

Здесь интерес представляют последние строчки:

Об отсутствии сертификата в списке отозванных говорит значение «good», если же сертификат отозвали, то значение будет «revoked».

Автоматизация

Проверять SSL-сертификаты на предмет отзыва вручную не всегда удобно, поэтому процесс проверки можно автоматизировать.

Для этого берём с Github готовый скрипт ssl-check-revoc.sh, который осуществляет проверку сертификатов методом CRL:

Далее делаем скрипт исполняемым:

Теперь можно проверять как уже установленные сертификаты для домена, так и сохранённые локально в файлы (опция -f):

Zabbix

Скрипт ssl-check-revoc.sh может проверять сертификаты не только из консоли, он также вполне подходит в качестве чекера для Zabbix, поэтому всю грязную работу по отслеживанию попадания сертификатов в список отзыва можно поручить системе мониторинга.

Заходим в конфиг Zabbix /etc/zabbix/zabbix_server.conf и смотрим, где лежат скрипты для внешних проверок:

Копируем в этот каталог наш скрипт и рестартуем Zabbix:

Заходим в веб-интерфейс и создаём шаблон (Configuration >> Templates >> Create template). В качестве имени шаблона указываем «Template SSL Checking». Затем внутри шаблона создаём элемент данных (Item) «SSL Certificate in Revocation List», в качестве ключа указываем «ssl-check-revoc.sh[]», с типом проверки «External check». Интервал проверок можно установить на своё усмотрение в зависимости от критичности проекта.

Также понадобятся два триггера:

1. Для сигнализации отзыва сертификата «Certificate for domain is in revocation list»
Expression: «