SSL — историческое имя протокола, корректнее говорить TLS (Transport Layer Security). HTTPS = HTTP поверх TLS: браузер не просто шифрует трафик, а проверяет, что сертификат принадлежит нужному домену и что цепочка доверия ведёт к корневому центру сертификации. Если хоть одно звено ломается, соединение может быть зашифровано, но недоверенным.
На практике ошибки почти всегда лежат в трёх местах: — сертификат выписан на другое имя; — не отдан промежуточный сертификат; — сервер поддерживает слабые наборы шифров или старый протокол. Формально это описано в RFC 8446 и в правилах валидации сертификатов RFC 5280. Важно: «замок» в браузере — не гарантия честности контента, а только признак корректной криптографической проверки.
Частая ловушка — смешанный контент: HTML пришёл по HTTPS, а картинки, скрипты или iframe грузятся по HTTP. Тогда защита размывается, а браузер может блокировать часть страницы. Ещё одна ошибка — редирект на HTTPS без канонического URL и HSTS (HTTP Strict Transport Security): пользователь может попасть на insecure-версию или получить лишний цикл редиректов.
Проверяйте три вещи: имя в сертификате, полную цепочку, отсутствие HTTP-ресурсов в странице. Всё остальное — детали реализации, но именно эти три проверки чаще всего решают, будет ли HTTPS работать как защита, а не как декорация. Further reading: RFC 8446, RFC 5280, RFC 6797. Bottom line: HTTPS полезен только тогда, когда браузер может подтвердить личность сайта и не находит обходных путей вокруг шифрования.
Handshake Papers
@HandshakePapers
Почему SSL / HTTPS есть, а сайт всё равно не выглядит безопасным?
This post was published in the Telegram channel Handshake Papers. Subscribe here: @HandshakePapers.