Оценка SSL
Не просто «действителен ли сертификат?», а «актуальна ли вся конфигурация TLS?». Эта страница отдельно проверяет каждую версию протокола, читает ключ и подпись сертификата, проверяет прямую секретность и HSTS и сводит результат к буквенной оценке — с объяснением каждого снижения, так что B или C точно говорит, что исправлять.
Хотите следить за этим постоянно? Мониторьте бесплатно с myeventwatch — оповещения об истечении срока и простоях, карта не нужна.
Что измеряет оценка
Проверка сертификата отвечает, действителен ли один документ. Конфигурация может пройти эту проверку и всё равно остаться слабой: сервер, который отвечает по TLS 1.0 любому, кто попросит, шифр, позволяющий будущей утечке ключа расшифровать записанный сегодня трафик, отсутствующий заголовок HSTS, из-за которого первый визит можно понизить. Поэтому оценщик измеряет четыре вещи, у каждой свой раздел в результате. Матрица протоколов выполняет по одному рукопожатию, закреплённому за каждым из TLS 1.0, 1.1, 1.2 и 1.3 — версия считается поддерживаемой, только если закреплённое за ней рукопожатие действительно завершается, так что «поддерживается» измеряется, а не выводится из той версии, что случайно согласовалась. Раздел сертификата сообщает, что предъявляет сервер, даже если валидация не проходит: издатель, покрываемые имена, окно действия, тип и размер ключа и алгоритм подписи. Прямая секретность считывается из согласованного шифра: наборы TLS 1.3 секретны по построению, старые — только при эфемерном обмене ключами. А HSTS читается из корневого ответа домена, с его max-age и флагами.
Одно намеренное упущение: OCSP stapling не проверяется. TLS-библиотека, которую использует этот сервис, не показывает прикреплённые ответы, поэтому оценщик не может их наблюдать и честно говорит об этом, а не гадает. Stapling ни помогает оценке, ни вредит ей; если он вам важен, проверьте его с помощью openssl со своей машины. Сама шкала оценки полностью расписана ниже, потому что оценка, которую нельзя проверить, — просто значок.
Шкала простыми словами
Каждый сайт начинает с A+, а вычеты ограничивают оценку сверху — действует самый строгий применимый предел, и каждый появляется в результате как находка. F означает, что браузеры отклоняют сайт или пригодного TLS нет вовсе: истёкший сертификат, самоподписанный сертификат, сертификат, не покрывающий имя хоста, подпись MD5 или ни одного успешного рукопожатия на порту 443. C означает устаревшее или ненадёжное: цепочка, которая не проходит валидацию (обычно не хватает промежуточного сертификата), слабый ключ (RSA менее 2048 бит или маленькая эллиптическая кривая), подпись SHA-1 или высший поддерживаемый протокол TLS 1.1 или старше. B означает реальную, но переживаемую слабость: устаревший протокол, всё ещё включённый рядом с актуальными, или согласованный шифр без прямой секретности. A означает одну мягкую проблему: нет заголовка HSTS, max-age HSTS меньше шести месяцев или сертификат внутри своего 30-дневного окна продления. Исправляйте находки по порядку — сначала F и C, затем B, затем A — и переоценивайте после каждого изменения; часовой кэш означает, что перед повторной проверкой исправления, возможно, стоит подождать. Под капотом страница вызывает GET /api/check/ssl-grade на сервере sysosx, который выполняет проверки и кэширует оценку на час.
Связанные инструменты: проверка SSL для быстрого просмотра сертификата и обратного отсчёта до истечения, проверка здоровья сайта для доступности, сертификата, срока и записей вместе, цепочка статусов HTTP, когда конфигурация TLS в порядке, а путь перенаправлений — нет, и сканер портов для того, что ещё слушает на хосте помимо порта 443. Чтобы увидеть, что когда-либо выпускалось для домена, а не что он предъявляет сегодня, используйте поиск по Certificate Transparency.
Дополнительное чтение: как оценки TLS зарабатываются и теряются — распространённые сбои за каждым пределом и их исправления в том порядке, в котором их стоит делать.
Частые вопросы
Чем это отличается от проверки SSL?
Проверка SSL отвечает на один вопрос: какой сертификат предъявляет этот сервер и действителен ли он? Оценщик проверяет всю конфигурацию TLS: какие версии протокола сервер всё ещё предлагает (TLS 1.0–1.3, каждая проверяется отдельно), даёт ли согласованный шифр прямую секретность, размер ключа и алгоритм подписи сертификата, и задан ли HSTS. Используйте проверку для быстрого обратного отсчёта до истечения; используйте оценщик, когда хотите знать, актуальна ли сама конфигурация.
Что означает каждая оценка?
A+ — чистый результат: только актуальные протоколы, прямая секретность, действительная цепочка, покрывающая это имя хоста, и долгоживущий HSTS. A означает одну мягкую проблему, обычно отсутствующий или короткий HSTS либо сертификат внутри своего 30-дневного окна продления. B означает реальную, но переживаемую слабость: всё ещё включённый устаревший протокол или шифр без прямой секретности. C означает что-то устаревшее или ненадёжное: цепочка, которая не проходит валидацию, слабый ключ или подпись SHA-1, либо высший протокол TLS 1.1 или старше. F означает, что браузеры отклоняют сайт или пригодного TLS нет вовсе: истёкший, самоподписанный или не соответствующий сертификат либо подпись MD5.
Почему сервер ограничивается оценкой B только за поддержку TLS 1.0?
Потому что «поддерживается» — это факт о сервере, а не о ваших посетителях. Ничто актуальное не согласовывает TLS 1.0, поэтому держать его включённым не покупает никакой совместимости и оставляет в предложении самые слабые шифры. Предел — это отказ оценщика называть конфигурацию актуальной, пока протокол 1999 года всё ещё отвечает. Отключить его — обычно одна строка конфигурации, и оценка восстанавливается сразу.
Почему оценщик не проверяет OCSP stapling?
Честное ограничение, указанное на странице: TLS-библиотека, которую использует этот сервис, не показывает прикреплённые ответы OCSP, поэтому оценщик не может их наблюдать. Вместо того чтобы гадать, он сообщает о stapling как о «не проверено» и не даёт ему ни помогать оценке, ни вредить. Если stapling вам важен, проверьте его командой openssl s_client -connect host:443 -status со своей машины.
Почему результат кэшируется на час?
Оценка меняется только тогда, когда меняется конфигурация TLS сервера, что бывает редко и намеренно — в отличие от распространения DNS, где сам ответ и есть цель. Новые проверки ограничены на посетителя (около двадцати в час, с небольшим запасом на всплески), как и другие серверные проверки, а закэшированный результат помечается как таковой. Если вы только что что-то исправили, подождите, пока пройдёт час, или перепроверьте после истечения кэша.