Коротко. Проверить сертификат сайта можно тремя способами: кликнуть по замочку в адресной строке браузера, запустить онлайн-проверку через SSL-чекер enterno.io или выполнить команду openssl s_client в терминале. Главное, на что смотреть: срок действия, совпадение домена с полем SAN и полнота цепочки доверия. Ниже — пошаговые инструкции, таблица частых ошибок и настройка автоматического мониторинга.
Зачем проверять SSL-сертификат сайта
SSL-сертификат подтверждает подлинность сайта и шифрует трафик. Неисправный сертификат — это:
- Потеря посетителей — «Подключение не защищено» отпугивает большинство пользователей
- Падение позиций — HTTPS входит в факторы ранжирования Google
- Утечка данных — пароли и формы уходят открытым текстом
- Блокировка платежей — PCI DSS требует актуального TLS
- Сломанные интеграции — API-клиенты и приложения падают сразу после истечения срока
Как проверить сертификат сайта в браузере
Самый быстрый способ — без единого инструмента.
Проверка в Chrome
- Нажмите на замочек (или иконку настроек) слева от адреса.
- «Безопасное подключение» → «Сертификат действителен».
- Вкладка «Общие»: Subject (кому выдан), Issuer (кем выдан), период действия.
- Вкладка «Подробнее»: поле Subject Alternative Name — все домены сертификата.
Проверка в Firefox
- Замочек → «Соединение защищено» → «Подробнее».
- Нажмите «Просмотреть сертификат».
- Откроется about:certificate — по вкладке на каждое звено: leaf, промежуточный, корневой.
- Смотрите Validity, список SAN и издателя каждого звена.
Проверка в Safari
- Замочек в адресной строке → «Показать сертификат».
- Вверху — дерево цепочки от корневого CA до сертификата сайта.
- В «Подробнее» — серийный номер, алгоритм подписи, даты, SAN.
Браузер кеширует промежуточные сертификаты: «зелёный замочек» у вас не значит, что сервер отдаёт цепочку полностью. Перепроверяйте сайт внешним инструментом или openssl с чистой машины — так его видят новые посетители.
Онлайн-проверка SSL-сертификата
SSL-проверка enterno.io подключается к сайту из внешней сети — как браузер посетителя — и показывает:
- срок действия и число оставшихся дней;
- полноту цепочки и отсутствующие промежуточные звенья;
- издателя (CA) и тип валидации;
- поддерживаемые версии TLS;
- итоговый грейд конфигурации.
Обычно этого достаточно: дата истечения и типовые ошибки видны без терминала. Норма — TLS 1.2 и 1.3; SSL 3.0 и TLS 1.0/1.1 отключены (их запрещает PCI DSS).
Проверка SSL-сертификата через openssl
Когда нужны детали — подключитесь к серверу напрямую:
# Полная информация о TLS-соединении и сертификате
openssl s_client -connect example.com:443 -servername example.com
Флаг -servername передаёт SNI: без него сервер с несколькими сайтами на одном IP может отдать чужой сертификат.
Даты действия:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
| openssl x509 -noout -dates
Цепочка, как её отдаёт сервер, плюс издатель и субъект:
openssl s_client -connect example.com:443 -servername example.com -showcerts < /dev/null
# Только издатель и субъект
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
| openssl x509 -noout -issuer -subject
Быстрая проверка через curl
curl -vI https://example.com 2>&1 | grep -E "expire|issuer|subject|SSL"
curl покажет издателя, срок и результат верификации (SSL certificate verify ok); ошибка — значит, предупреждение видят и посетители.
Что означают поля сертификата
- Subject (CN) — имя владельца сертификата; браузеры давно смотрят только на SAN.
- Subject Alternative Name (SAN) — список доменов сертификата; нет домена в SAN — ошибка несовпадения имени.
- Issuer — кто подписал: Let's Encrypt, GlobalSign, Sectigo, Russian Trusted Sub CA.
- Validity (notBefore / notAfter) — период действия; после notAfter сертификат недействителен мгновенно.
Цепочка доверия: leaf → intermediate → root
Браузер доверяет не вашему сертификату, а корневым CA из своего хранилища. Цепочка: leaf подписан промежуточным, тот — корневым. Сервер обязан отдавать leaf и промежуточные звенья; корневой слать бессмысленно — клиент доверяет только копии root в своём trust store, присланный корень игнорируется. Без промежуточного звена старые Android и часть других клиентов получают ошибку доверия; разбор — в статье про ошибку «cannot verify server certificate».
Wildcard, SAN и типы валидации DV/OV/EV
- Wildcard (*.example.com) — все поддомены первого уровня, но не сам example.com и не поддомены вида a.b.example.com.
- SAN / multi-domain — явный список доменов в одном сертификате.
- DV — проверка владения доменом; выдаётся за минуты, подходит большинству сайтов.
- OV / EV — CA проверяет и организацию (EV строже); браузеры EV визуально не выделяют.
Уровень валидации не влияет на стойкость шифрования — её определяют ключ и версия TLS.
Частые ошибки сертификатов: симптомы и решения
| Проблема | Симптом | Причина | Как исправить |
|---|---|---|---|
| Истёкший сертификат | ERR_CERT_DATE_INVALID | Сломалось автопродление | certbot renew + мониторинг срока |
| Самоподписанный | ERR_CERT_AUTHORITY_INVALID | Не выдан доверенным CA | Выпустить у публичного CA (Let's Encrypt) |
| Несовпадение имени | ERR_CERT_COMMON_NAME_INVALID | Домена нет в SAN (часто — www) | Перевыпустить с полным списком доменов |
| Неполная цепочка | Ошибка на мобильных, десктоп «зелёный» | Сервер не отдаёт промежуточное звено | Установить fullchain, а не только leaf |
| Отозванный | ERR_CERT_REVOKED | Отозван CA (компрометация ключа) | Срочно перевыпустить с новым ключом |
Разбор двух самых частых ситуаций: как исправить ERR_CERT_AUTHORITY_INVALID и что делать при «cannot verify server certificate».
Сертификаты НУЦ Минцифры: почему браузер ругается
С 2022 года часть российских сайтов — Сбербанк, ВТБ, Госуслуги — использует сертификаты НУЦ Минцифры (Russian Trusted CA). Их корня нет в хранилищах Chrome, Firefox и Safari, поэтому браузеры показывают ERR_CERT_AUTHORITY_INVALID, хотя сертификат корректен.
Распознать случай просто: в поле Issuer будет Russian Trusted Sub CA. Проблема не в сроке и не в цепочке, а в отсутствии корня в trust store. Такие сайты без предупреждений открываются в Яндекс Браузере и Атоме, где корень предустановлен; в остальных корень ставят вручную и осознанно: это доверие ко всему, что им подписано.
Мониторинг срока действия сертификата
Сертификаты «внезапно» истекают, потому что молча ломается автопродление:
- cron-задача certbot потерялась при переезде сервера;
- изменились DNS-записи — ACME-валидация не проходит;
- сертификат обновился, но веб-сервер не перечитал конфиг;
- основной домен продлился, забытый поддомен — нет.
Минимальный контроль — ежедневный cron-скрипт (синтаксис date — GNU/Linux):
#!/bin/sh
# /etc/cron.daily/ssl-check
DOMAIN="example.com"
EXPIRY=$(echo | openssl s_client -connect "$DOMAIN:443" -servername "$DOMAIN" 2>/dev/null \
| openssl x509 -noout -enddate | cut -d= -f2)
DAYS=$(( ($(date -d "$EXPIRY" +%s) - $(date +%s)) / 86400 ))
if [ "$DAYS" -lt 14 ]; then
echo "SSL для $DOMAIN истекает через $DAYS дн." | mail -s "SSL ALERT: $DOMAIN" admin@example.com
fi
Скрипт проверяет только дату, живёт на одном сервере с сайтом и дублируется на каждый домен. Надёжнее внешний контроль: SSL-проверка enterno.io следит за сроком, цепочкой и TLS, мониторинг enterno.io предупредит заранее (тарифы), сравнение сервисов — в обзоре мониторинга SSL.
Настраивайте оповещения на трёх порогах — за 30, 14 и 7 дней до истечения: первый даёт время на плановое продление, второй страхует забытую задачу, третий — сигнал продлевать немедленно.
FAQ: проверка сертификата сайта
Как проверить сертификат сайта без установки программ?
Кликните по замочку в браузере или откройте онлайн-проверку SSL: она покажет цепочку, протоколы и грейд, а не только срок.
Почему у меня сертификат «действителен», а у посетителей ошибка?
Признак неполной цепочки: ваш браузер закешировал промежуточный сертификат, а «чистые» клиенты не могут его получить. Проверьте openssl s_client -showcerts с другой машины.
Можно ли проверить SSL-сертификат чужого сайта?
Да: сертификат — публичная информация, сервер отдаёт его при каждом подключении. Подойдёт любой способ из статьи.
Как часто нужно проверять сертификат?
Вручную — после изменений сервера, DNS или CDN; автоматически — ежедневно: это ловит молча сломавшееся автопродление.
Чек-лист проверки SSL-сертификата
- Сертификат не просрочен, запас больше 14 дней
- Домен и поддомены есть в SAN (включая www)
- Сервер отдаёт leaf и все промежуточные сертификаты
- Издатель — доверенный CA (у НУЦ Минцифры свои ограничения)
- TLS 1.2/1.3 включены, SSL 3.0 и TLS 1.0/1.1 отключены
- curl -vI и openssl без ошибок верификации
- Автопродление проверено вхолостую (certbot renew --dry-run)
- Внешний мониторинг срока с алертами за 30/14/7 дней