Как проверить SSL-сертификат сайта: пошаговое руководство
проверку SSL — это цифровой документ, который подтверждает подлинность сайта и обеспечивает шифрование данных между браузером и сервером. Проверка SSL-сертификата помогает убедиться, что соединение защищено, сертификат действителен и правильно настроен.
Почему важно проверять SSL-сертификат
Просроченный или неправильно настроенный сертификат — это не просто техническая проблема:
- Потеря посетителей — браузеры показывают предупреждение «Подключение не защищено», и 85% пользователей немедленно покидают сайт
- Падение SEO-позиций — Google учитывает HTTPS как фактор ранжирования
- Уязвимость данных — без шифрования пароли, данные форм и cookies передаются открытым текстом
- Проблемы с оплатой — PCI DSS требует TLS для обработки платёжных данных
- Потеря доверия — пользователи ассоциируют «замочек» в адресной строке с надёжностью
Что проверять в SSL-сертификате
1. Срок действия
Самая частая проблема — просроченный сертификат. Даже с автоматическим обновлением через Let's Encrypt могут возникнуть сбои: изменился DNS, сломался cron, заполнился диск.
Рекомендуется проверять срок действия регулярно и настроить оповещения за 30, 14 и 7 дней до истечения. SSL-чекер enterno.io показывает точную дату истечения и количество оставшихся дней.
2. Цепочка доверия (Certificate Chain)
SSL-сертификат работает только когда браузер может проверить всю цепочку: ваш сертификат → промежуточный CA → корневой CA. Если промежуточный сертификат не установлен на сервере, некоторые клиенты (особенно мобильные) покажут ошибку.
Типичные проблемы с цепочкой:
- Отсутствует промежуточный сертификат
- Неправильный порядок сертификатов в файле
- Устаревший промежуточный CA (например, отозванный IdenTrust для Let's Encrypt)
- Самоподписанный сертификат без добавления в trust store
3. Имя домена (Common Name / SAN)
Сертификат должен быть выдан именно для вашего домена. Проверьте, что:
- Основной домен (example.com) указан в Subject Alternative Name (SAN)
- Поддомен www.example.com также покрыт
- Wildcard-сертификат (*.example.com) не покрывает основной домен без www
- Multi-domain сертификат содержит все нужные домены
4. Протокол и шифры TLS
Современный сайт должен поддерживать TLS 1.2 и TLS 1.3. Устаревшие протоколы небезопасны:
| Протокол | Статус | Действие |
|---|---|---|
| SSL 2.0 / 3.0 | Уязвим (POODLE, DROWN) | Отключить обязательно |
| TLS 1.0 | Устарел (PCI DSS запрещает) | Отключить |
| TLS 1.1 | Устарел | Отключить |
| TLS 1.2 | Безопасен | Поддерживать |
| TLS 1.3 | Рекомендован | Включить по возможности |
5. Тип сертификата
Существует три уровня валидации:
- DV (Domain Validation) — подтверждает только владение доменом. Подходит для большинства сайтов
- OV (Organization Validation) — подтверждает организацию. Для бизнес-сайтов
- EV (Extended Validation) — расширенная проверка. Для финансовых организаций и e-commerce
Способы проверки SSL-сертификата
Онлайн-инструменты
Самый удобный способ — использовать SSL-чекер enterno.io. Введите доменное имя, и инструмент покажет:
- Срок действия сертификата
- Издателя (CA) и тип валидации
- Цепочку доверия
- Поддерживаемые протоколы TLS
- Subject Alternative Names
Через браузер
Нажмите на значок замочка в адресной строке → «Подключение защищено» → «Сертификат действителен». Здесь можно увидеть основную информацию, но не все технические детали.
Командная строка (OpenSSL)
Для глубокого анализа используйте openssl:
# Показать сертификат
openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null | openssl x509 -text -noout
# Проверить срок действия
openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null | openssl x509 -dates -noout
# Проверить цепочку
openssl s_client -connect example.com:443 -servername example.com -showcerts < /dev/null
Распространённые проблемы и их решение
ERR_CERT_DATE_INVALID
Сертификат просрочен. Обновите его через панель хостинга или вручную через certbot:
sudo certbot renew --force-renewal
ERR_CERT_AUTHORITY_INVALID
Браузер не может проверить цепочку доверия. Убедитесь, что промежуточные сертификаты установлены. Для nginx объедините файлы:
cat certificate.crt intermediate.crt > fullchain.crt
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Сервер и браузер не могут договориться о протоколе. Обновите конфигурацию TLS:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
NET::ERR_CERT_COMMON_NAME_INVALID
Домен не совпадает с указанным в сертификате. Перевыпустите сертификат с правильным доменом.
Автоматическое обновление сертификатов
Let's Encrypt выдаёт сертификаты на 90 дней. Настройте автоматическое обновление:
# Добавьте в crontab
0 3 * * * certbot renew --quiet --post-hook "systemctl reload nginx"
Даже с автообновлением регулярно проверяйте сертификат через SSL-чекер enterno.io — это поможет обнаружить проблемы, которые certbot не отслеживает: устаревшие шифры, неполную цепочку и скорое истечение.
Чек-лист проверки SSL
- Сертификат не просрочен и до истечения более 14 дней
- Цепочка доверия полная (промежуточные сертификаты установлены)
- Домен совпадает с SAN-записями
- Поддерживается TLS 1.2 и/или TLS 1.3
- SSL 3.0 и TLS 1.0/1.1 отключены
- Используются безопасные cipher suites
- HSTS заголовок настроен
- OCSP Stapling включён
- Нет mixed content на страницах
- Автообновление настроено и работает
Проверьте ваш сайт прямо сейчас
Проверить →