我有一个私有证书,用于向外部网络服务器进行身份验证。我想自动下载网页,但每当它发出请求时,它都需要我的私钥密码。有没有办法通过脚本以某种方式提供这个密钥(在环境变量中或以其他方式)?一个小警告:这需要在 Windows 机器上运行,所以我不能使用 Expect 模块。
这是我到目前为止的代码:
use strict;
use warnings;
use LWP::UserAgent;
my $output_doc = $ARGV[0];
my $url = $ARGV[1];
$ENV{HTTPS_PROXY} = 'http://1.2.3.4:3128';
$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL";
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
$ENV{HTTPS_DEBUG} = 1;
$ENV{HTTPS_CERT_FILE} = 'test_cert/cert.pem';
$ENV{HTTPS_KEY_FILE} = 'test_cert/private.key';
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => "$url");
my $response = $ua->request($req);
open OUT, ">$output_doc";
print OUT $response->as_string;
close OUT;
到目前为止,它工作正常。它会拉下我在第二个参数中提供的网页,但是对于每个页面,我都必须输入我的 PEM 密码。感谢您的任何建议!