После установки SSL-сертификата необходимо убедиться, что он работает правильно — правильный сертификат, полная цепочка, современный TLS, без ошибок. Вот лучшие инструменты для каждой проверки.
Онлайн-инструменты
SSL Labs Server Test (самый полный)
URL: ssllabs.com/ssltest
Отраслевой стандарт для тестирования SSL. Введите свой домен и получите детальный отчёт с оценкой от A+ до F.
Что проверяет:
- Валидность сертификата и полноту цепочки
- Поддержку протоколов (TLS 1.0/1.1/1.2/1.3)
- Стойкость и порядок наборов шифров
- Известные уязвимости (POODLE, Heartbleed, DROWN, ROBOT)
- Настройку HSTS
- OCSP stapling
- DNS CAA-записи
- Certificate Transparency
Цель: оценка A+ (требуется TLS 1.2+, шифры AEAD, HSTS с длинным max-age)
Когда использовать: после первоначальной настройки, после изменений конфигурации и периодически (ежемесячно).
SSL Shopper SSL Checker
URL: sslshopper.com/ssl-checker
Быстрая проверка, сфокусированная на валидности сертификата и цепочке.
Что проверяет:
- Правильная установка сертификата
- Полнота цепочки (наличие промежуточного сертификата)
- Соответствие сертификата домену
- Дата истечения срока действия
Когда использовать: быстрая проверка «работает ли?» — быстрее, чем SSL Labs.
crt.sh (поиск по Certificate Transparency)
URL: crt.sh
Поиск по логам Certificate Transparency для всех сертификатов, когда-либо выпущенных для домена.
Когда использовать: мониторинг несанкционированных сертификатов, проверка регистрации вашего сертификата, просмотр истории выпуска.
Why No Padlock
URL: whynopadlock.com
Сканирует конкретную страницу на наличие смешанного контента — HTTP-ресурсы на HTTPS-странице.
Когда использовать: когда замок показывает предупреждение или отсутствует, несмотря на наличие действительного сертификата.
Инструменты командной строки
Быстрые проверки с OpenSSL
# Проверка работоспособности HTTPS
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep "Verify return code"
# 0 (ok) = хорошо
# Показать дату истечения сертификата
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate
# Показать полные детали сертификата
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text
# Проверить согласованную версию TLS
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep "Protocol"
# Проверить конкретную версию TLS
echo | openssl s_client -connect yourdomain.com:443 -tls1_3 2>/dev/null | grep "Protocol"
curl для быстрой проверки HTTPS
# Базовая проверка HTTPS
curl -I https://yourdomain.com
# Показать информацию о сертификате
curl -vI https://yourdomain.com 2>&1 | grep -E 'subject:|issuer:|expire'
# Проверить редирект с HTTP
curl -ILs http://yourdomain.com | grep -E '^HTTP|^Location'
nmap для перечисления шифров
nmap --script ssl-enum-ciphers -p 443 yourdomain.com
Показывает все наборы шифров, поддерживаемые сервером, сгруппированные по версии TLS.
Что проверять и когда
| Когда | Что проверять | Инструмент |
|---|---|---|
| После установки сертификата | Полнота цепочки, соответствие домену | SSL Shopper (быстро) |
| После изменений конфигурации | Полный аудит (оценка, шифры, уязвимости) | SSL Labs (тщательно) |
| Ежемесячно | Приближение срока истечения | Скрипт мониторинга |
| После миграции | Смешанный контент | Why No Padlock |
| Постоянно | Несанкционированные сертификаты | crt.sh / мониторинг CT |
| При отладке ошибок | Детали соединения | OpenSSL s_client |
Интерпретация оценок SSL Labs
| Оценка | Значение | Типичные проблемы |
|---|---|---|
| A+ | Отлично | Есть HSTS с длинным max-age |
| A | Хорошо | Отсутствует HSTS или короткий max-age |
| B | Нормально, но есть что улучшить | Устаревшие наборы шифров, включён TLS 1.0/1.1 |
| C | Слабая конфигурация | Уязвимые шифры, нет прямой секретности |
| F | Серьёзные проблемы | Известная уязвимость, истёкший сертификат |
| T | Сертификат не доверен | Самоподписанный, неверный домен, неполная цепочка |
Лучшие практики SSL для достижения A+ →
Часто задаваемые вопросы
Как часто нужно проверять?
После любого изменения, связанного с SSL, и как минимум ежемесячно в рамках мониторинга. Результаты SSL Labs кэшируются на несколько часов — добавьте &clearCache=on для принудительного нового сканирования.
Безопасно ли использовать SSL Labs? Не раскрывает ли он мой сайт?
Да, это безопасно. SSL Labs подключается к вашему серверу так же, как любой браузер. Он ничего не модифицирует и не раскрывает уязвимости. Результаты по умолчанию публичны — отметьте «Do not show the results on the boards», если предпочитаете приватность.
Мой сайт получает A в SSL Labs, но всё ещё показывает «Не защищено»
Оценка SSL Labs относится к конфигурации TLS на сервере. «Не защищено» в браузере также может быть вызвано: смешанным контентом (проверьте с Why No Padlock), отсутствием редиректа с HTTP или прямым доступом по HTTP. Это проблемы на уровне страницы, а не на уровне сервера.
Можно ли автоматизировать проверку SSL?
У SSL Labs есть бесплатный API: api.ssllabs.com/api/v3/analyze?host=yourdomain.com. Его можно интегрировать в CI/CD или пайплайны мониторинга. Для более простых проверок используйте команды OpenSSL в cron-скрипте.