Заметки

Как проверить сертификат сайта руками

9 августа 2026

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

Команда

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

Параметр -servername важен: на одном адресе обычно живёт несколько сайтов, и сервер выбирает сертификат по имени из запроса. Без него вы можете получить сертификат по умолчанию, а не тот, который видит посетитель.

Что смотреть в ответе

  • subject — кому выдан сертификат. Имя должно совпадать с адресом сайта.
  • issuer — кто его выдал. Для обычных сайтов это публичный центр сертификации.
  • notBefore / notAfter — срок действия. Если notAfter в прошлом, браузер покажет предупреждение.

Сколько осталось дней

Чтобы не считать в уме, можно попросить openssl сразу проверить, продержится ли сертификат ещё, например, две недели:

openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null \
  | openssl x509 -noout -checkend $((14*24*3600)) \
  && echo "ещё больше двух недель" || echo "скоро истекает"

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

Если что-то не сходится

Чужое имя в subject означает, что сервер настроен неверно или запрос попал не на тот сайт. Неожиданный issuer стоит проверить внимательнее: так выглядит и подмена, и перехват трафика в сети, где вам подсовывают свой сертификат.