Проверка сертификата сайта через HTTP-прокси с OpenSSL
Используйте OpenSSL s_client через HTTP CONNECT-прокси и согласуйте имя назначения, SNI и проверку сертификата.
Используйте установленный OpenSSL s_client с поддержкой -proxy. Для авторизованной конечной точки HTTP CONNECT:
openssl s_client -proxy proxy.example:3128 -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error -showcertsЗамените адрес прокси и последовательно используйте нужное имя назначения. Для проверки публичного назначения через выбираемый прокси выберите HTTP-кандидата из списка HTTP-прокси. -connect выбирает цель, -servername отправляет SNI для её виртуального TLS-хоста, а -verify_hostname проверяет идентичность. Одного SNI недостаточно для проверки имени хоста. При настройке параметров смотрите руководство установленной версии.
-showcerts показывает отправленное сервером, но не объявляет цепочку доверенной. -verify_return_error завершает handshake при ошибках проверки; иначе диагностический клиент может продолжить после ошибок. Для частной службы используйте утверждённые материалы CA, а не доверяйте случайно загруженному сертификату.
| Результат | Этап |
|---|---|
| 407 | Аутентификация прокси до TLS назначения. |
| Отклонённое назначение CONNECT | Политика назначения прокси. |
| Сертификат получен, проверка выполнена | TLS-обмен назначения через принятый туннель. |
В OpenSSL 3.x с HTTP-прокси, использующим Basic-аутентификацию, применяйте параметры прокси-учётной записи s_client, сохраняя проверку назначения.
Конечная точка только SOCKS не предоставляет интерфейс HTTP-прокси, который использует эта команда. При разрешённом перехвате TLS показанный сертификат может быть выдан этим посредником. Сравните его издателя и предусмотренную схему доверия, прежде чем считать различие неисправностью сайта.