Что такое сертификат в HTTPS
Что проверяют
Понимаете ли вы, что сертификат подтверждает подлинность стороны, а не «включает шифрование», и умеете ли отличить честный отказ браузера от дефекта стенда. Для тестировщика это ещё и навык проверять инфраструктурную часть, а не только формы на странице.
Как отвечать
Сертификат это подписанный удостоверяющим центром документ, связывающий доменное имя с публичным ключом сервера. При рукопожатии сервер присылает цепочку, клиент проверяет подпись каждого звена вплоть до корня из своего хранилища доверия, срок действия, отзыв и совпадение имени с полем SAN. Затем сервер приватным ключом подписывает параметры обмена и этим доказывает владение ключом, а сам трафик шифруется симметричным сеансовым ключом.
Что проверяет тестировщик: срок и автопродление, наличие всех доменов и поддоменов в SAN, полноту цепочки, редирект с http и заголовок HSTS, отсутствие смешанного контента, поведение на просроченном и самоподписанном сертификате, работу при сбитых часах устройства.
openssl s_client -connect example.com:443 -servername example.comГде спотыкаются
Говорят, что данные шифруются публичным ключом из сертификата. Так работал только старый обмен ключами на RSA; в актуальном TLS ключ из сертификата служит для подписи, а общий секрет стороны вычисляют отдельно и заново для каждого соединения.
Проверяют только в браузере. Браузер умеет дотягивать недостающее промежуточное звено и кэширует его, поэтому сайт открывается, а интеграция с мобильного клиента или из консольной утилиты падает на неполной цепочке.
Считают, что валидный сертификат равен правильному. Он может быть выдан доверенным центром, но на другое имя или на соседний стенд, и клиент отвергнет соединение по несовпадению имени, хотя в интерфейсе всё выглядит зелёным.