Сертификат проверяют тремя способами: в браузере, командой openssl и внешним сервисом проверки — каждый способ отвечает на свой вопрос и ни один не заменяет остальные полностью.
Что вообще нужно проверить
За словом «проверить сертификат» на самом деле стоит несколько разных вопросов, и ответ на каждый важен по-своему.
| Критерий | Чем грозит несоответствие |
|---|---|
| Срок действия | Браузер и приложения показывают ошибку, сайт считается небезопасным |
| Имя в сертификате | Предупреждение о несовпадении домена, даже если сертификат действителен |
| Цепочка до корня | Часть устройств и библиотек не находит промежуточный центр и отказывает |
| Алгоритм подписи | Устаревший алгоритм блокируется современными браузерами и клиентами |
| Отзыв сертификата | Отозванный сертификат должен считаться недействительным, но не все клиенты это проверяют |
В браузере
Браузер показывает сертификат через значок замка рядом с адресом — оттуда видны срок действия, имя сайта и центр, выпустивший сертификат.
Браузер не показывает полную цепочку, которую реально получает сервер при установке соединения, и не всегда сообщает об устаревшем алгоритме подписи — он доверяет уже построенной операционной системой цепочке, а не проверяет её заново с нуля.
Командой openssl
Для проверки сертификата на живом сервере подключаются напрямую к порту и смотрят, что сервер присылает в ответ.
openssl s_client -connect example.com:443 -servername example.com # проверка сертификата на сервере по сети
Для проверки уже сохранённого файла сертификата читают его содержимое без подключения к серверу.
openssl x509 -in certificate.crt -noout -dates # проверка срока действия в локальном файле
Неполная цепочка — самая частая поломка
Браузер на компьютере помнит промежуточные сертификаты из прошлых посещений и достраивает цепочку сам, поэтому ошибки не видно. Телефон, curl и строгие клиенты ничего не помнят и требуют, чтобы сервер прислал всю цепочку целиком — отсюда разница в поведении у одного и того же сайта.
Увидеть проблему можно той же командой openssl: если в ответе сервера не хватает промежуточного сертификата, это сразу заметно в выводе цепочки.
Срок и автопродление
Автоматическое продление снимает большую часть забот, но не является гарантией: оно молча не срабатывает, если закрыт порт, по которому центр сертификации проверяет владение доменом, изменился веб-сервер или обработчик продления, либо домен уехал на другие серверы имён.
Подробно про подключение и выпуск сертификата — в статье как включить SSL.
Симптом, причина и способ проверки
Собранная таблица помогает быстро сопоставить то, что видит пользователь, с тем, что искать на сервере.
| Симптом | Вероятная причина | Чем проверить |
|---|---|---|
| В браузере всё хорошо, а curl или приложение показывают ошибку | Неполная цепочка сертификатов | Команда openssl s_client или внешний сервис проверки цепочки |
| Сертификат относится к другому имени | Не обновили сертификат после смены домена или поддомена | Поля имени сайта в самом сертификате |
| Автопродление не сработало | Закрыт порт проверки или сменился веб-сервер | Журнал центра сертификации и дата следующей попытки |
| Предупреждение о самоподписанном сертификате | Сертификат не выпущен доверенным центром | Поле издателя сертификата |
| Ошибка просрочки на части устройств, а не везде | Разный список доверенных корневых центров на старых системах | Дата окончания срока действия и список корневых центров |
Частые вопросы
Как узнать, когда истекает сертификат?
Срок действия виден в браузере рядом с адресом сайта или командой openssl, которая показывает дату начала и окончания действия сертификата. Внешние сервисы проверки дополнительно присылают напоминание заранее, что удобно, если за сертификатом никто не следит вручную.
Почему сайт открывается в браузере, но ругается в приложении?
Чаще всего причина в неполной цепочке сертификатов: браузер достраивает недостающее звено сам, опираясь на память операционной системы, а строгий клиент вроде curl или мобильного приложения ждёт полную цепочку от самого сервера и отказывает, если она прислана не целиком.
Что такое проверка сертификата?
Это сверка нескольких независимых признаков: не истёк ли срок действия, совпадает ли имя сайта с именем в сертификате, выстраивается ли цепочка до доверенного корня и не отозван ли сертификат. Браузер, команда openssl и внешний сервис проверяют разные части этого набора.
Нужно ли что-то делать при продлении?
При автоматическом продлении обычно ничего, но стоит периодически проверять, что оно действительно происходит, а не молчит из-за закрытого порта или изменившегося веб-сервера. Ручной выпуск требует отдельно установить новый сертификат на сервер после получения.
Вывод
Для разового контроля достаточно браузера, для диагностики жалоб пользователей — команды openssl, а для постоянного наблюдения — внешний сервис с уведомлениями. Что означают разные типы сертификатов при выпуске — в статье типы SSL-сертификатов.