HTTP スキームに HTTP プロキシを設定しても、HTTPS リクエストが構成されるとは限りません。LWP では、要求された URL のスキームがどのプロキシマッピングを参照するかを決めます。

明示的な共通エンドポイントを両方のスキームに割り当てられます。

use LWP::UserAgent;

my $ua = LWP::UserAgent->new(timeout => 15);
$ua->proxy(['http', 'https'], 'http://proxy.example.net:8080');
my $response = $ua->get('https://example.com/');

許可された公開リクエストでは、HTTP プロキシ一覧が共通の LWP プロキシ URL の候補を提供します。宛先は HTTPS で、プロキシ URL は HTTP です。これは通常の CONNECT の構成であり、プロキシのスキームを HTTPS に改名する理由にはなりません。

アプリケーションがプロキシの環境変数を読むべき場合は、env_proxy を使ってその検出を有効にします。シェルに存在する変数も、このクライアントが決して取り込まなければ役に立ちません。HTTP の値だけでなく、該当する HTTPS 設定とバイパス規則を確認してください。

選択した設定元は意図的に保ちます。明示的な割り当ての後に環境設定を取り込むと、コードが選んでいるように見えるエンドポイントと結果が異なることがあります。

証明書の信頼と Web サイトの認証は、プロキシのルーティングとは別です。直接接続、プロキシによる拒否、その後の TLS エラーを、すべての設定を一度に置き換えるのではなく、それぞれの段階で診断してください。

関連記事