こないだハマったのでメモ。
クライアント証明書がによる認証を行うサーバにLWP::UserAgentでアクセスしたかったのだが、パット調べてもわからなかった。結局perldocをちゃんと読めって言う話なんだけど・・・
まずCPANを見る
「cert」とかでページ内検索するとssl_optsというメソッドを発見。
ここに載ってるオプションは三つで
どれもクライアント証明書指定のためのオプションではない。
ネットでけっこうな時間調べていても見つからない。。
その前にもっとちゃんと読むべき
LWP::UserAgentのperldoc(というか上のCPAN)を見返したら、
Other options can be set and are processed directly by the SSL Socket implementation in use.
他のオプションは使ってるSSL実装をみてね、って。
うん。
なるほど書いてあった。
- SSL_cert_file
このオプションでクライアント証明書を指定するらしい。
このときは以下の感じでアクセスできた。
my $ua = LWP::UserAgent->new; $ua->ssl_opts( verify_hostname => 0, SSL_cert_file => 'certs/client-cert.pem', SSL_key_file => 'certs/client-key.pem', ); my $res = $ua->get($uri);
こんな感じ。ドキュメントはちゃんとよく読みませう。。