我是Mojolicious的新手,我試圖讓Mojo :: UserAgent腳本同時使用TLS證書頒發機構和TLS證書文件,但證書文件受密碼保護。我有問題傳遞密碼,因此客戶端證書可以打開。Mojo :: UserAgent TLS/SSL證書認證
我有以下代碼:
#!/usr/bin/env perl
use Modern::Perl;
use Mojo::UserAgent;
IO::Socket::SSL::set_defaults(SSL_passwd_cb => sub {return "password";});
my $ua = Mojo::UserAgent->new;
my $base_dir = '/path/to/certs/';
$ua->ca($base_dir . 'ca-cert.crt');
$ua->cert($base_dir . 'clientcert.crt');
my $tx = $ua->build_tx(POST => '/POST HTTP/1.1');
$tx->req->url->parse('https://example.com:12345');
$ua->start($tx);
if(my $res = $tx->success) {
say $res->body;
print Dumper($tx);
} else {
my ($err, $code) = $tx->error;
say $code ? "$code response: $err" : "Connection error: $err";
}
我與驗證證書的以下內容:
openssl s_client -connect host:port -CApath /path/to/cert - CAfile ca-cert.crt -cert clientcert.crt
我得到提示:
Enter pass phrase for clientcert.crt:
我進入pa ssword和它正確的身份驗證。
那麼,我如何獲得IO :: Socket :: SSL的密碼?
你真的需要密碼?去除它呢? – cstamas 2013-03-20 22:25:30
不幸的是,我正在連接到遠程系統,他們以這種方式分發他們的證書。 – dbyoung 2013-03-21 01:21:35