Сертификаты и рукопожатие — Примеры
Пример 1 — Имя хоста, которое сертификат не покрывает
Новый поддомен магазина добавлен и направлен на существующий балансировщик. Используемый сертификат перечисляет только основной домен и его вариант с www. Читатель пробует новое имя и получает жёсткую ошибку браузера, а не предупреждение. Разберитесь, что проверяет клиент и что нужно выпустить, прежде чем имя загрузится.
SAN сертификата: DNS: example.com, DNS: www.example.com
Используемые имена: example.com, www.example.com, shop.example.com
Решение
Пользователи набирают: shop.example.com
-> сертификат действителен только для example.com, www.example.com
-> несовпадение имени, браузер блокирует до отдачи любой страницы
Исправление: выпустите сертификат со всеми обслуживаемыми именами, затем
перезагрузите его на слушателе и перепроверьте каждое имя снаружи сети
Сертификат связывает набранное пользователем имя с открытым ключом, и клиент отказывает в соединении, когда имя не перечислено. Обычная ошибка — покрыть apex и забыть поддомен, или наоборот: отсутствие варианта с www — настоящий простой для любого, кто его наберёт. Маска покрывает только один уровень и всё равно должна лежать под тем же родительским доменом.
Пример 2 — Цепочка, которая работает в офисе
Сотрудники загружают сайт, а свежий посетитель с телефона — нет, и ошибка называет сертификат, а не сеть. Слушатель отправляет только собственный сертификат. Исправление — отправить ещё и промежуточное звено, в правильном порядке. Опишите, что проверяет клиент и как убедиться в этом снаружи.
Рукопожатие TLS:
сервер -> только листовой сертификат
клиент -> идёт по цепочке, не находит связи с доверенным корнем
итог -> соединение прервано, только у свежих клиентов
Решение
Рукопожатие TLS:
сервер -> листовой сертификат, затем промежуточные, по порядку
клиент -> лист, вверх через промежуточное, к уже доверенному корню
итог -> сессия продолжается; ключ шифрования выведен, канал установлен
Проверка: подключайтесь снаружи сети хостинга свежим клиентом для каждого
обслуживаемого имени хоста и подтвердите цепочку, имя и остаток > 30 дней
Отдача полной цепочки по порядку позволяет клиенту, у которого ничего не закэшировано, построить путь к доверенному корню. Отказ невидим при тестировании, потому что браузеры кэшируют промежуточные звенья, увидев их где-то ещё, поэтому он проявляется только у действительно свежего клиента. Автоматизируйте и продление, и следите за истечением снаружи; истёкший сертификат отказывает так же, как сломанная цепочка.