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 のプロキシ交渉は実装していません。

関連記事