2014-04-23 55 views
0

我想通過HTTPS連接到使用LWP :: Simple的站點。我已經在腳本和shell中設置了環境變量。我繼續得到500連接超時。我可以很好地連接到HTTP網站。LWP HTTPS代理超時

代理正在讓通信通過。我可以通過使用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); 
} 

回答

1

HTTPS爲LWP代理支持(或者至少是直到前幾天)打破,至少如果你使用IO::Socket::SSL,這是LWP版本> = 6.0,因爲它提供了更好的安全默認值。現在使用LWP 6.0.6和LWP::Protocol::https 6.0.6幾天前發佈的情況會好得多。如果你不能升級,你可以嘗試使用Net::SSLGlue::LWP哪些補丁LWP更好的https代理支持。