TLS через прокси: какие сертификаты проверяет клиент
Прокси-маршрут не отменяет проверку личности сервера. При HTTPS-сайте внутри CONNECT-туннеля клиент проверяет сертификат назначения. Если сам прокси использует HTTPS, появляется ещё одно TLS-соединение до прокси с отдельной проверкой. Эти два уровня имеют разные имена, сертификаты и параметры доверия.
Главное за минуту
- Сертификат сайта проверяется внутри туннеля.
- HTTPS-прокси имеет отдельный сертификат и цепочку доверия.
- Имя в сертификате должно соответствовать имени соединения.
- Отключение проверки допустимо только как краткий лабораторный тест.
TLS к целевому сайту
После успешного CONNECT клиент выполняет TLS-handshake с сайтом. Он проверяет подпись сертификата, цепочку до доверенного CA и соответствие имени URL. Прокси не превращает неверный сертификат сайта в корректный.
TLS к HTTPS-прокси
Если схема прокси — HTTPS, сначала устанавливается TLS между клиентом и прокси. cURL предоставляет отдельные параметры CA и проверки для этого уровня. Затем внутри защищённого соединения может быть создан CONNECT-туннель и второй TLS к сайту.
Откуда берётся доверие
Клиент использует системное или файловое хранилище доверенных центров в зависимости от сборки и платформы. Внутренний корпоративный CA добавляют управляемым способом. Подмена файла неизвестным сертификатом без проверки источника создаёт новую уязвимость.
Почему insecure не является исправлением
Параметр insecure отключает важную часть проверки и допускает соединение с подменённым узлом. Он может помочь подтвердить, что причина теста именно в доверии, но после этого нужно исправить имя, цепочку или CA и вернуть полную проверку до запуска в работу.
Практический чек-лист
- 1Определить, используется HTTP- или HTTPS-прокси.
- 2Разделить ошибку сертификата прокси и сайта.
- 3Проверить имя, срок и цепочку сертификата.
- 4Подключить доверенный CA штатным способом.
- 5Убедиться, что insecure выключен после диагностики.
Источники и документы
Материал подготовлен по первичным, официальным и техническим источникам. Формулировки статьи являются самостоятельным изложением.