SSL, HTTPS, DNS и домены

Как проверить SSL-сертификат сайта

Как проверить сертификат в браузере и через OpenSSL: имя хоста, сроки notBefore/notAfter, цепочку сертификатов, SNI и оставшееся время до истечения.

Опубликовано: 19 августа 2026 г.Обновлено: 19 августа 2026 г.
Проверка SSL-сертификата сайта: доменное имя, цепочка доверия и срок действия

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

Для быстрой проверки подходит браузер. Для воспроизводимой проверки на сервере или в терминале удобно использовать openssl s_client вместе с openssl x509.

Что именно нужно проверить в сертификате

Период действия

X.509-сертификат содержит границы действия notBefore и notAfter. Текущее время должно попадать в этот интервал.

Имя хоста

Сертификат должен быть выпущен для домена, к которому подключается клиент. Современная проверка ориентируется на Subject Alternative Name (SAN).

Цепочка доверия

Сервер обычно отправляет leaf-сертификат и необходимые промежуточные сертификаты. Клиент строит цепочку до доверенного корневого центра.

Корректность TLS-соединения

Даже действующий сертификат бесполезен, если handshake не устанавливается из-за несовместимой конфигурации протоколов, шифров или сетевой проблемы.

Быстрая проверка в браузере

Откройте сайт по https://, затем информацию о защищённом соединении и сертификате. Названия пунктов различаются между браузерами, но обычно можно увидеть:

  • доменное имя;
  • издателя;
  • даты начала и окончания действия;
  • цепочку сертификатов;
  • статус доверия.

Браузер удобен для ручной проверки конкретного пользователя, но хуже подходит для автоматизации и массового контроля.

Проверка через OpenSSL

Для подключения к сайту:

openssl s_client -connect example.com:443 -servername example.com

Параметр -servername передаёт SNI. Он особенно важен на серверах, где один IP обслуживает несколько HTTPS-доменов. Без SNI сервер может вернуть сертификат другого virtual host. Схема SNI для нескольких HTTPS-доменов на одном IP-адресе

После успешного подключения в выводе будут сведения о TLS-сеансе и сертификатах.

Как вывести основные поля сертификата

Удобная команда:

openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  </dev/null 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates

Результат содержит примерно такие поля:

subject=CN = example.com
issuer=...
notBefore=...
notAfter=...

Ключевое поле для срока — notAfter.

Как посмотреть SAN

openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  </dev/null 2>/dev/null \
| openssl x509 -noout -ext subjectAltName

Убедитесь, что нужное имя покрывается списком DNS names сертификата. Wildcard вроде *.example.com имеет конкретные правила сопоставления и не означает автоматическое покрытие любого уровня вложенности.

Как проверить, скоро ли сертификат истечёт

OpenSSL x509 поддерживает -checkend, который проверяет, истечёт ли сертификат в течение указанного количества секунд.

Например, 30 дней:

openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  </dev/null 2>/dev/null \
| openssl x509 -noout -checkend 2592000

Если сертификат будет действовать дольше указанного окна, команда завершится успешно. Если срок закончится раньше, exit status будет ненулевым.

Это удобно для shell-скриптов, но при большом количестве доменов лучше использовать специализированный мониторинг с историей и уведомлениями.

Как проверить имя хоста через OpenSSL

В современных версиях openssl x509 есть опция -checkhost:

openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  </dev/null 2>/dev/null \
| openssl x509 -noout -checkhost example.com

Такой тест полезнее простого просмотра CN, потому что выполняет проверку соответствия имени.

Как посмотреть сертификаты, которые отправляет сервер

openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  -showcerts

Документация OpenSSL подчёркивает: -showcerts показывает список сертификатов именно в том виде, как его отправил сервер; это само по себе не является подтверждением построенной и проверенной цепочки доверия.

Поэтому наличие нескольких блоков BEGIN CERTIFICATE ещё не доказывает, что цепочка корректна.

Что означает ошибка проверки сертификата

Причины можно разделить на несколько классов:

  • сертификат ещё не начал действовать;
  • сертификат истёк;
  • имя сайта не соответствует сертификату;
  • сервер не отправил нужный intermediate;
  • цепочка ведёт к недоверенному центру;
  • клиент использует устаревшее trust store;
  • TLS-handshake ломается раньше проверки сертификата.

Не объединяйте все эти ситуации в «сломался SSL» — способы исправления разные.

Почему сертификат может работать в одном браузере и не работать в другом

Клиенты могут использовать разные trust stores, версии TLS и поведение при построении цепочки. Кроме того, часть клиентов могла сохранить промежуточный сертификат из предыдущих соединений, что иногда маскирует неполную конфигурацию сервера.

Для диагностики полезно проверять сервер независимо, а не ограничиваться одним браузером на рабочем компьютере.

Проверка HTTPS за CDN

Если домен расположен за CDN, публичный клиент проверяет сертификат, который отдаёт edge CDN. При этом между CDN и origin может существовать отдельное HTTPS-соединение со своим сертификатом.

Получается две потенциальные точки проблемы:

Пользователь → TLS → CDN → TLS → origin

Публичная проверка домена не доказывает автоматически корректность origin-сертификата, если CDN скрывает его от пользователя. Два независимых TLS-соединения между клиентом, CDN и origin-сервером

Как не пропустить окончание срока сертификата

Ручная проверка полезна при диагностике, но плохо масштабируется. Сертификат может быть исправен сегодня и истечь через несколько дней, когда о нём никто не вспомнит.

SSL-мониторинг UpWatch периодически подключается к заданному host и port, проверяет TLS/сертификат и отслеживает оставшийся срок. Такой монитор полезен именно как профилактика: проблема обнаруживается до того, как пользователи увидят предупреждение браузера.

Чек-лист проверки SSL-сертификата

  1. Открыть правильный https:// домен.
  2. Проверить notBefore и notAfter.
  3. Проверить соответствие имени хоста.
  4. Передать правильный SNI.
  5. Проверить цепочку сертификатов.
  6. Убедиться, что TLS-handshake завершается успешно.
  7. Посмотреть, сколько дней осталось до notAfter.
  8. Настроить автоматическое предупреждение заранее.

Источники

Для команд и поведения использована документация OpenSSL s_client и x509. В частности, x509 -checkend предназначен для проверки истечения сертификата в заданном временном окне, а -checkhost — для проверки соответствия имени хоста.

Частые вопросы

Как быстро посмотреть срок действия SSL-сертификата?

Можно открыть сведения о сертификате в браузере или получить поля notBefore и notAfter командой OpenSSL x509.

Зачем в openssl s_client указывать -servername?

Этот параметр передаёт SNI. Без него сервер с несколькими HTTPS virtual host может вернуть сертификат не того домена.

Что делает openssl x509 -checkend?

Проверяет, истечёт ли сертификат в течение заданного количества секунд, и возвращает соответствующий exit status.

Показывает ли -showcerts проверенную цепочку доверия?

Нет. OpenSSL указывает, что -showcerts показывает сертификаты, отправленные сервером, но сам список не является подтверждением проверенной цепочки.

Почему нужен автоматический контроль сертификата?

Ручная проверка показывает состояние только сейчас. Мониторинг позволяет заранее обнаружить приближение срока окончания и проблемы TLS.