how/network
Откуда браузер «знает» что example.com настоящий? Цепочка подписей от leaf-cert через intermediate до root, который уже встроен в ОС.
В TLS-handshake сервер шлёт сертификат - публичный ключ
плюс подпись. Но почему этому сертификату вообще можно доверять? А
если злоумышленник просто сделает свой сертификат с
CN=example.com?
Защита - цепочка подписей. Сертификат сервера подписан промежуточным CA (Certificate Authority), тот подписан root CA, а root уже встроен в ОС/браузер при их разработке. Эта цепочка доверия и не даёт злоумышленнику подделать что-либо без приватного ключа какого-то CA.
Браузер при каждом HTTPS-соединении делает 5 проверок, прежде чем показать HTTPS. Нажми ▶ - посмотрим какие.
В пакете Certificate (часть TLS-handshake) сервер шлёт свой leaf-сертификат + промежуточные (если есть). Браузер получает эту стопку и должен убедиться что:
Если хоть одна проверка не прошла - большой красный warning и блокировка по умолчанию.
итого
Что важно запомнить:
openssl s_client -connect example.com:443 показывает всю цепочку, или
openssl x509 -in cert.pem -text распарсивает один сертификатСвязано с tls-handshake (handshake который запускает эту проверку) - без cert chain шифрованный канал был бы возможен, но аутентификация сервера невозможна.