【发布时间】:2014-09-02 05:28:54
【问题描述】:
我正在尝试创建一个仅连接到网站的脚本。但是,由于某种原因,它不会连接到任何使用 HTTPS 的东西。
我们在这里启用了代理。但是,我相信代理不是问题,因为如果我要连接到网络内不通过代理隧道的 HTTPS,它仍然会失败。
如果我要在任何不使用 HTTPS 的站点上运行此程序,我可以通过并且脚本按预期工作。
我想知道的是,通过阻止脚本连接到任何受 SSL 保护的站点,可能会发生什么。
这是我写的代码:
$ENV{HTTPS_DEBUG} = 1;
my $ua = LWP::UserAgent->new( keep_alive => 1);
$ua->agent('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36');
my $pac = HTTP::ProxyPAC->new( URI->new("http://pacfilelocation:8080/pac_file.pac") );
my $res = $pac->find_proxy("https://www.google.com");
if ($res->direct) {
print "No Proxy Needed\n";
} elsif ($res->proxy) {
print "Proxy: " . $res->proxy . "\n";
$ENV{HTTPS_PROXY} = $res->proxy;
$ENV{HTTP_PROXY} = $res->proxy;
$ua->env_proxy;
}
my $req = new HTTP::Request('GET', 'https://www.google.com/');
$req->header('Accept' => 'text/html');
$req->header('Host', 'www.google.com');
my $res2 = $ua->request($req);
if ( $res2->is_success ) {
print $res2->decoded_content;
} else {
print "Error: " . $res2->status_line . "\n";
}
HTTPS_DEBUG 功能由于某种原因没有输出调试信息,这使得这个问题更加难以解决。
运行脚本时出现一般错误:
Error: 500 Can't connect to www.google.com:443
任何帮助都会很棒!
【问题讨论】:
标签: perl ssl https lwp lwp-useragent