外部 Web サーバーでの認証に使用するプライベート証明書があります。ウェブページのダウンロードを自動化したいのですが、リクエストを行うたびに秘密鍵のパスフレーズが必要です。何らかの方法でスクリプトを介してこのキーを提供する方法はありますか (環境変数またはその他の方法で)。1 つ注意点があります。これは 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;
これまでのところ、正常に動作しています。2 番目の引数で指定した Web ページをプルダウンしますが、ページごとに PEM パスフレーズを入力する必要があります。ご提案ありがとうございます。