私の症状は、LWPを使用したHTTPS要求でプロキシを使用できないことです。これは一般的な問題のようであり、Googleのヒント、そしてここでもHTTPS_PROXY
すべて、Crypt::SSLeayで使用する環境変数を設定するための回避策を示唆しています。
私の特定の問題は、LWP :: Protocol::httpsがCrypt::SSLeayではなくIO::Socket::SSLをロードしていることのようです。代わりにCrypt::SSLeayを強制的に使用するにはどうすればよいですか?
私のコード:
#!/usr/bin/perl
use strict;
use warnings;
$ENV{HTTPS_PROXY} = 'http://10.0.3.1:3128';
use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
my $req = HTTP::Request->new('GET','https://www.meritrustcu.org/');
my $res = $ua->request($req);
print "$_\n" for grep { $_ =~ /SSL/ } keys %INC;
そしてそれは出力であり、Crypt :: SSLeayが使用されていないことを示しています:
Net/SSLeay.pm
IO/Socket/SSL.pm
/usr/lib/perl5/auto/Net/SSLeay/autosplit.ix
/usr/lib/perl5/auto/Net/SSLeay/set_proxy.al
/usr/lib/perl5/auto/Net/SSLeay/randomize.al
スクリプトに明示use Crypt::SSLeay
を追加するだけでは効果がないことがわかりました。モジュールをロードしますが、引き続きIO :: Socket :: SSLをロードし、HTTPS要求に使用します。