lwp-requestでhttps 通信

Perl の lwp-request を利用した GET/HEAD といったメソッドで HTTPS 通信を行おうとすると、次のようなエラーが発生してしまう。

$ HEAD https://www.google.com/
501 Protocol scheme 'https' is not supported (Crypt::SSLeay not installed)
Content-Type: text/plain
Client-Date: Sat, 24 Jul 2010 15:32:35 GMT
Client-Warning: Internal response

原因はエラーメッセージに書かれている通り、LWP で HTTPS 通信を行うためのモジュール「Crypt::SSLeay」がかけているため。

debian 系であれば「libcrypt-ssleay-perl」という名前でパッケージ化されているので、こいつをインストールすればよい。

$  sudo apt-get install libcrypt-ssleay-perl

Crypt::SSLeay」モジュールインストール後は次のように正常に LWP で HTTPS 通信できるようになる。

$ HEAD https://www.google.com/
200 OK
Cache-Control: private, max-age=0
Connection: close
Date: Sat, 24 Jul 2010 15:23:23 GMT
Server: gws
Content-Type: text/html; charset=ISO-8859-1
Expires: -1
Client-Date: Sat, 24 Jul 2010 15:32:55 GMT
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
Client-SSL-Cert-Subject: /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
Client-SSL-Cipher: RC4-SHA
Client-SSL-Warning: Peer certificate not verified
Set-Cookie: PREF=ID=b05a5e113d494d84:TM=1279985003:LM=1279985003:S=voFdiY7lfg4vun88; expires=Mon, 23-Jul-2012 15:23:23 GMT; path=/; domain=.google.com
Set-Cookie: NID=37=U3f4Lw4KoxrjKoyWNyGxfd3PgGtOFXsYbeNa_eWPBOZAMGmJfBa1BsKui3OdlhWEKNwKkhNq_9h9ZWFi66QH13nzR1Qizr_LlDc-sHW4ZfQ7t66IPEXhQskUXc1af1Rx; expires=Sun, 23-Jan-2011 15:23:23 GMT; path=/; domain=.google.com; HttpOnly
X-XSS-Protection: 1; mode=block
Tagged with: , , , , ,
Posted in web

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: