我正在尝试通过HTTPS连接到使用LWP :: Simple的网站。我已经在脚本和shell中设置了环境变量。我继续获得500连接超时。我可以很好地连接到HTTP站点。
代理正在通过。我可以使用curl通过代理连接到HTTPS站点,没有任何问题。
有什么建议吗?
#!/usr/bin/perl
use warnings;
use Net::SSL;
use LWP::UserAgent;
use LWP::Debug qw(+);
use Data::Dumper;
$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL";
$ENV{HTTPS_DEBUG} = 1;
$ENV{HTTPS_VERSION} = 2;
my $ua = LWP::UserAgent->new (verify_hostname => 0);
$ua->ssl_opts(verify_hostname => 0,
SSL_verify_mode => 0x00);
$ua->proxy('https' => 'http://x.x.x.x:3128');
print $ua->proxy('https');
print Dumper($ua);
my $response = $ua->get('https://qualys.com/');
print Dumper ($response);
if ($response->is_success) {
print $response->decoded_content; # or whatever
exit(0);
}
else {
print "\nFail:\n";
print $response->status_line ."\n";
exit(1);
}
答案 0 :(得分:1)
对LWP
的HTTPS代理支持是(或至少在几天前)被破坏,至少如果您使用IO::Socket::SSL
,这是LWP版本> = 6.0的默认值,因为它提供更好的安全性现在使用LWP 6.0.6和LWP::Protocol::https
6.0.6几天前发布的应该会好得多。如果您无法升级,可以尝试使用Net::SSLGlue::LWP
修补LWP以获得更好的https代理支持。