Главная / База знаний / Инструменты и интеграции / Проверка SSL-сертификата сайта: онлайн, в браузере и через openssl

Проверка SSL-сертификата сайта: онлайн, в браузере и через openssl

Инструменты и интеграции 8 мин чтения Обновлено 17.10.2026
Проверка SSL-сертификата — это сверка срока действия, имени домена, цепочки доверия и издателя. Быстрее всего — ввести домен в онлайн-проверку; то же покажут замок в браузере и команда openssl s_client.

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

Как проверить SSL-сертификат онлайн: пошагово

  1. Откройте проверку SSL-сертификата и введите домен: example.com. Можно вставить и полный адрес — инструмент сам выделит имя хоста. Нестандартный порт указывается через двоеточие: example.com:8443.
  2. Инструмент подключается к серверу так же строго, как браузер: проверяет цепочку доверия и совпадение имени. Если строгая проверка не прошла, он подключается повторно без неё — чтобы всё равно показать сертификат и объяснить, что именно не так.
  3. Посмотрите на верхний баннер: сколько дней осталось до окончания срока. Меньше 30 дней — жёлтое предупреждение; красный баннер означает, что браузеры сертификату не доверяют, а причины перечислены ниже: истёк срок, сертификат выдан на другое имя, он самоподписанный или цепочка не проверяется. Под списком выводится и ответ OpenSSL при строгой проверке.
  4. Проверьте карточки с деталями: Common Name, издатель, даты «действителен с» и «действителен до», тип и длина ключа (RSA короче 2048 бит помечается как слабый), алгоритм подписи и список альтернативных имён (SAN) — в нём должны быть все варианты домена, включая www.
  5. Повторите проверку для www.example.com и для поддоменов: у каждого имени может быть свой сертификат, и ошибка часто живёт именно там, куда не заходили.

Ограничения честно: это разовая проверка одного имени. Она не перебирает версии TLS и шифры, которые принимает сервер, не ищет смешанное содержимое на страницах и не следит за сроком сама. Версии протоколов проверяются командой openssl из раздела ниже или сканером Shield.

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

  • Chrome, Edge и другие браузеры на Chromium: нажмите значок слева от адреса, затем «Подключение защищено» → «Сертификат действителен». Откроется окно с полями «Кому выдан», «Кем выдан», сроком действия и вкладкой с цепочкой.
  • Firefox: замок → «Соединение защищено» → «Подробнее» → «Просмотреть сертификат».
  • Safari: замок в адресной строке → «Показать сертификат».

Браузер удобен, чтобы быстро увидеть срок и издателя, но не годится как окончательная проверка: он кэширует промежуточные сертификаты и может «достроить» неполную цепочку, которую робот или мобильное приложение не примут.

Проверка SSL через командную строку (openssl)

Утилита openssl есть в macOS и Linux, в Windows — например, в составе Git for Windows. Базовая команда подключается к серверу и печатает цепочку и результат проверки:

openssl s_client -connect example.com:443 -servername example.com </dev/null

Параметр -servername передаёт имя сайта (SNI). Без него сервер, на котором живёт несколько сайтов, может отдать сертификат другого домена, и вы будете чинить несуществующую ошибку. В выводе ищите строку Verify return code: 0 (ok) — цепочка в порядке; 21 (unable to verify the first certificate) — обычно сервер не отдаёт промежуточный сертификат; 10 (certificate has expired) — истёк срок; 18 (self-signed certificate) — самоподписанный.

Даты, владельца и издателя удобно вытащить одной строкой:

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

notBefore и notAfter — начало и конец срока, -ext subjectAltName выводит список имён (OpenSSL 1.1.1 и новее), а -checkend 1209600 отвечает, истечёт ли сертификат в ближайшие 14 дней (1 209 600 секунд) — эту строку удобно ставить в cron для мониторинга.

Принимает ли сервер устаревший протокол, покажет попытка подключиться только по нему: openssl s_client -connect example.com:443 -servername example.com -tls1_1 </dev/null. Если рукопожатие прошло — TLS 1.1 на сервере включён. Оговорка: в свежих сборках OpenSSL старые версии могут быть запрещены на стороне клиента, и тогда ошибка ничего не говорит о сервере. Для TLS 1.2 и 1.3 используйте -tls1_2 и -tls1_3.

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

ПараметрЧто должно быть
Срок действияБольше двух недель в запасе; бесплатные сертификаты живут около трёх месяцев и обновляются автоматически
Имя в сертификатеСовпадает с доменом, включая вариант с www
Цепочка доверияПолная: без промежуточного сертификата часть клиентов выдаст ошибку
ПротоколыTLS 1.2 и 1.3; устаревшие версии лучше отключить
ИздательИзвестный центр сертификации, а не самоподписанный сертификат
Частая ловушка: работает в браузере, ломается у робота
Браузеры кэшируют промежуточные сертификаты, поэтому неполная цепочка у вас может открываться нормально, а у поискового робота или мобильного приложения — нет. Именно поэтому проверять надо внешним инструментом, а не «у меня же открывается».

Что делать при ошибках

  1. Истёк срок. Обновите сертификат и проверьте, что автопродление действительно работает.
  2. Не совпадает имя. Добавьте нужные домены в сертификат или настройте отдельный.
  3. Неполная цепочка. Догрузите промежуточный сертификат на сервер.
  4. Смешанное содержимое. Замените ссылки на картинки, стили и скрипты с http на https, иначе браузер ругается даже при валидном сертификате.

Ошибки SSL: как выглядят и как исправить

ОшибкаКак проявляетсяЧто сделать
Истёк срокChrome: NET::ERR_CERT_DATE_INVALID; openssl: certificate has expiredПеревыпустите сертификат и проверьте автопродление. Частый случай: новый файл уже на диске, но веб-сервер не перезагрузили, и он отдаёт старый.
Имя не совпадаетNET::ERR_CERT_COMMON_NAME_INVALIDВыпустите сертификат со всеми нужными именами в SAN — например, example.com и www.example.com. Wildcard *.example.com покрывает один уровень поддоменов, но не сам example.com и не a.b.example.com.
Неполная цепочкаВ одних браузерах открывается, в других — NET::ERR_CERT_AUTHORITY_INVALID; openssl: unable to verify the first certificateУстановите полную цепочку: сертификат сайта плюс промежуточные. Для Let's Encrypt в nginx указывают fullchain.pem, а не cert.pem.
Самоподписанный сертификатNET::ERR_CERT_AUTHORITY_INVALID; openssl: self-signed certificateЗамените на сертификат доверенного центра. Бесплатный вариант — Let's Encrypt или сертификат, который выпускает хостинг или CDN.
Только устаревший TLSОбычно ERR_SSL_VERSION_OR_CIPHER_MISMATCHВключите TLS 1.2 и 1.3, отключите SSL 3.0, TLS 1.0 и 1.1, обновите веб-сервер и библиотеку OpenSSL.
Неверное времяОшибка срока у сертификата, который на самом деле действителенПроверьте часы на устройстве пользователя или на сервере: сертификат сверяется с текущей датой.

Сроки действия SSL-сертификатов

Максимальный срок публичных TLS-сертификатов задают правила CA/Browser Forum — объединения центров сертификации и разработчиков браузеров. Долгое время потолок составлял 398 дней. В апреле 2025 года форум принял бюллетень SC-081 о поэтапном сокращении, и первый шаг уже действует:

Дата выпуска сертификатаМаксимальный срок
с 15 марта 2026 года200 дней
с 15 марта 2027 года100 дней
с 15 марта 2029 года47 дней

Ограничение применяется по дате выпуска: уже выданный сертификат дорабатывает свой срок. Подробности — в бюллетене SC-081 на сайте CA/Browser Forum. Бесплатные сертификаты Let's Encrypt и так короткие: по FAQ Let's Encrypt они действуют 90 дней (по желанию — 6 дней), а продлевать 90-дневные рекомендуется каждые 60 дней. Вывод простой: ручное продление раз в год уходит в прошлое, продлевать должен автомат.

Автопродление Let's Encrypt: как убедиться, что оно работает

sudo certbot certificates
sudo certbot renew --dry-run
systemctl list-timers | grep certbot
  • certbot certificates покажет все сертификаты на сервере и дату окончания каждого.
  • certbot renew --dry-run проиграет продление на тестовом сервере Let's Encrypt, не трогая боевые сертификаты. Если тест падает, настоящее продление тоже упадёт.
  • Продление запускает таймер systemd или задача cron; при установке certbot из snap таймер называется snap.certbot.renew.timer. Нет ни того, ни другого — автопродления нет.
  • Чтобы веб-сервер подхватил новый сертификат, добавьте перезагрузку после продления: --deploy-hook "systemctl reload nginx".
  • Типичные причины сбоя: путь /.well-known/acme-challenge/ закрыт редиректом, паролем или правилом файрвола; домен переехал на другой сервер или CDN, а certbot остался на старом.

Если сертификат выпускает хостинг или CDN, продление обычно на их стороне — но только пока домен указывает на них. После смены DNS проверьте сертификат заново.

Мониторинг сертификата

  • Оповещение заранее. Внешний мониторинг или скрипт с openssl x509 -checkend по cron: пусть сигнал приходит минимум за две недели до окончания срока.
  • Повторная проверка после продления. Прогоните домен через проверку SSL: новый срок, полная цепочка, все имена в SAN.
  • Журналы Certificate Transparency. Все публичные сертификаты попадают в открытые журналы; поиск по домену (например, на crt.sh) показывает, какие сертификаты на него выпускались, — так видно и забытые поддомены, и неожиданные выпуски.
  • Регулярный аудит. Shield — платная проверка безопасности (разово с баланса или по подписке на мониторинг); в группе «TLS и сертификат» он смотрит срок и валидность сертификата, устаревшие TLS 1.0/1.1, редирект с HTTP на HTTPS и HSTS.

Бесплатный или платный сертификат

Для поиска разницы нет: браузер и робот проверяют валидность, а не цену. Бесплатные сертификаты выпускаются автоматически и обновляются сами — этого достаточно подавляющему большинству сайтов. Платные имеют смысл там, где нужны расширенная проверка организации, страховка или поддержка редких сценариев. Главное — чтобы автопродление действительно работало: просроченный дорогой сертификат хуже вовремя обновлённого бесплатного.

Как это связано с продвижением

Https — базовое требование: сайт без него теряет доверие и посетителей. Кроме того, ошибка сертификата мешает нашим проверкам: страница может оказаться недоступной для обхода. Полную картину безопасности даёт Shield, а заголовки защиты разобраны в статье о заголовках безопасности.

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

Почему сертификат работает в браузере, но инструмент показывает ошибку?
Браузеры кэшируют промежуточные сертификаты. При неполной цепочке у вас сайт открывается, а у робота или мобильного клиента — нет.
За сколько дней до истечения обновлять?
Держите запас хотя бы в две недели и проверьте, что автопродление действительно срабатывает.
Что такое смешанное содержимое?
Это загрузка картинок, стилей или скриптов по http на https-странице: браузер помечает страницу небезопасной даже при валидном сертификате.
Как проверить SSL-сертификат сайта онлайн?
Введите домен в проверку SSL-сертификата PromoPilot: она покажет срок действия и число оставшихся дней, издателя, имена в сертификате (SAN), ключ и цепочку, а если браузеры сертификату не доверяют — причину.
Как проверить SSL-сертификат через командную строку?
Командой openssl s_client -connect example.com:443 -servername example.com. Даты, владельца и издателя покажет та же команда, если передать её вывод в openssl x509 -noout -dates -subject -issuer.
Какой максимальный срок действия SSL-сертификата?
Для публичных сертификатов, выпущенных с 15 марта 2026 года, — 200 дней; с 15 марта 2027 года — 100 дней, с 15 марта 2029 года — 47 дней (решение CA/Browser Forum SC-081). Раньше потолок составлял 398 дней.
Была ли статья полезна?
Попробуйте на своём проекте Всё, что описано в статье, доступно в кабинете — бонус при регистрации уже на балансе.
Открыть кабинет