Как получить оценку SSL A+ (чек-лист 2026)
Обновлено 2026-11-03 · 7 мин чтения
A+ — это не другой тип сертификата, а другая конфигурация TLS. Большинству сайтов, застрявших на A, не хватает одной настройки: они корректно завершают TLS 1.2, но так и не включили TLS 1.3 или не отправляли достаточно длинный заголовок HSTS.
Что на самом деле определяет оценку
CertH оценивает пять взвешенных областей по одному чистому TLS-рукопожатию: действительность и цепочка сертификата, стойкость ключа и алгоритм подписи, предлагаемые версии протокола, согласованные наборы шифров, а также HSTS и OCSP stapling. Нет доступа к серверу, нет агента, нет загрузки конфигурационных файлов — всё наблюдается снаружи, ровно так, как это увидел бы браузер.
Пороги простые. Для A+ нужен балл 95 или выше, TLS 1.3 в списке согласованных протоколов и HSTS либо с preload, либо с max-age не менее 180 дней. A начинается с 90, B с 80, C с 70, D с 55, всё ниже 55 — F. Просроченный сертификат автоматически даёт 0.
Четыре изменения, которые переводят с A на A+
На практике разрыв почти всегда один из этих четырёх. Исправляйте по порядку — каждое проверяется независимо снаружи, поэтому после каждого шага можно пересканировать.
- •Включить TLS 1.3. Он даёт баллы сам по себе и обязателен для A+ даже при идеальных 100 во всём остальном.
- •Поднять HSTS минимум до max-age=15552000 (180 дней). Один год (31536000) — обычный выбор.
- •Отдавать полную цепочку, включая промежуточные сертификаты. Отсутствующий промежуточный проявляется как ошибка цепочки у части клиентов и стоит баллов.
- •Включить OCSP stapling, чтобы проверка отзыва шла вместе с рукопожатием, а не раскрывала IP посетителя удостоверяющему центру.
Конфигурация nginx, дающая A+
Полный фрагмент server для современного nginx (1.19+ с OpenSSL 1.1.1+). Если ваш nginx собран со старым OpenSSL, TLS 1.3 будет молча недоступен, что бы вы здесь ни написали — сначала проверьте через nginx -V.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
resolver 1.1.1.1 8.8.8.8 valid=300s;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Конфигурация Apache, дающая A+
Apache требует объявить кэш stapling один раз на уровне сервера, а не внутри виртуального хоста. Всё остальное — в блоке <VirtualHost *:443>.
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Ошибки, из-за которых сайт остаётся на A
Самая частая: включить HSTS с includeSubDomains на домене, где ещё есть поддомены только по HTTP — они мгновенно ломаются, и обычная реакция — удалить заголовок целиком, что возвращает на A. Разворачивайте HSTS поэтапно: начните с max-age 300 секунд, неделю понаблюдайте, затем поднимайте до года.
Вторая по частоте ошибка — считать, что TLS 1.3 включён, раз сертификат современный. Сертификаты и версии протокола независимы. Совершенно новый сертификат на сервере, который говорит только по TLS 1.2, всё равно даёт меньше 95.
Третья — CDN перед источником. Если Cloudflare, Fastly или балансировщик завершает TLS, конфигурация источника не имеет значения: оценка отражает edge, значит менять настройку нужно там.
Проверьте сами
Каждое изменение подтверждается в терминале за секунды. TLS 1.3 согласуется, только если сервер действительно его предлагает, HSTS виден в заголовках ответа, а stapling — в блоке OCSP-ответа.
# Does the server actually negotiate TLS 1.3?
openssl s_client -connect example.com:443 -tls1_3 -servername example.com </dev/null 2>/dev/null | grep "Protocol"
# Is HSTS set, and for how long?
curl -sI https://example.com | grep -i strict-transport-security
# Is OCSP stapling actually working?
openssl s_client -connect example.com:443 -status -servername example.com </dev/null 2>/dev/null | grep -A2 "OCSP Response"
FAQ
Нужен ли для A+ платный сертификат или сертификат с расширенной проверкой?
Нет. Сертификат с проверкой домена (DV) вполне может получить A+ — оценка измеряет конфигурацию TLS, а не уровень проверки. Тип сертификата важен только когда он меняет цепочку или алгоритм ключа.
Почему оценка упала после продления сертификата?
При продлении часто меняется издатель или тип ключа, а некоторые серверы после перезагрузки откатываются к другому набору шифров. CertH фиксирует изменение в разделе анализа динамики балла в отчёте по домену, с указанием конкретной причины.
Нужен ли HSTS preload для A+?
Нет. Preload — лишь один из двух способов выполнить требование HSTS; max-age не менее 180 дней без preload достаточно. Preload строже и гораздо труднее отменяется, считайте его опцией.