Basic 認証付き HTTP プロキシ経由の OpenSSL s_client
宛先ホスト名の検証を有効にしたまま、OpenSSL の proxy_user と proxy_pass オプションを使用します。
OpenSSL 3.x の s_client は、HTTP CONNECT プロキシ向けに proxy-user とパスワードソースのオプションを提供します。PROXY_USER と PROXY_PASSWORD をすでにエクスポートしている環境では、次のようにします。
openssl s_client \
-proxy proxy.example.net:8080 \
-proxy_user "$PROXY_USER" \
-proxy_pass env:PROXY_PASSWORD \
-connect example.com:443 \
-servername example.com \
-verify_hostname example.com \
-verify_return_error
実際のオプション名はアンダースコアを使います。-proxy_user と -proxy_pass です。プロキシのエンドポイントは host:port で、connect と servername が宛先を特定します。
proxy_pass は OpenSSL のパスワードソース構文を使います。env:PROXY_PASSWORD は指定した環境変数を読み取り、file:/path/to/file は別の文書化されたソース形式です。素のパスワードは同じ引数形式ではありません。
示されているオプションは証明書とホスト名の検証を要求し、検証エラーは致命的として扱われます。インストールと宛先に適した CA 設定(必要な CAfile など)を用意してください。
このプロキシ認証は Basic 認証です。示されているプロキシ接続は平文の HTTP なので、宛先の後続の TLS ハンドシェイクは先のログイン交換を暗号化しません。NTLM や Kerberos のプロキシ交渉は実装していません。