end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

perlのLWP::UserAgentでhttps getする場合、LWP::Protocol::https も必要

#!/usr/local/bin/perl
use strict;
use utf8;
use LWP::UserAgent;

main();

sub main {
    my $ua = LWP::UserAgent->new;
    $ua->timeout(10);

    my $res = $ua->get ('https://ないしょ.com/');

    if ($res->is_success) {
	print $res->decoded_content;
    } else {
	die $res->status_line;
    }
}

↑これを実行すると、次のように怒られます。

[endo@colinux tmp]$ ./foo.pl 
501 Protocol scheme 'https' is not supported (LWP::Protocol::https not installed) at ./foo.pl line 19.

「Crypt::SSLeayやNet::SSLeayは、昔、installしたような...」と思いつつ、 LWP::Protocol::https をinstallし、https getできるようになりました。

が...「はて? ルートCA証明書はどうしてるの?」と思ったら、LWP::Protocol::httpsの依存moduleであるMozilla::CAがバンドルしていました。