我正在尝试通过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);
}发布于 2014-04-24 03:56:18
HTTPS代理对LWP的支持已经被破坏了(至少在几天前是这样),至少在你使用IO::Socket::SSL的时候是这样,HTTPS是LWP版本>=6.0的默认支持,因为它提供了更好的安全性。几天前发布的LWP 6.0.6和LWP::Protocol::https 6.0.6应该会好很多。如果您不能升级,您可以尝试使用Net::SSLGlue::LWP,它可以修补LWP以获得更好的https代理支持。
https://stackoverflow.com/questions/23253651
复制相似问题