俺だけのために Ore! Tips!

Perl で https 通信をするために SSLeay モジュールを入れる

2005年10月30日 作業


Perl スクリプトで、HTTP と LWP モジュールを使って https プロトコルでヘッダ情報やコンテンツを取得したいがうまくいかない。

#!/usr/bin/perl
use HTTP::Status;
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$ua->agent("LWP::GETHEAD");
$url = $ARGV[0];
$request = new HTTP::Request HEAD => $url;
$response = $ua->request($request);
print "Content-Type:\t", $response->header("Content-Type"),"\n";
print "Content-Length:\t", $response->header("Content-Length"),"\n";
print "Last-Modified:\t", $response->header("Last-Modified"),"\n";
print "Expires:\t", $response->header("Expires"),"\n";
print "Server: \t", $response->header("Server"),"\n";

という perl スクリプトでヘッダ情報を GET したのだが、

srv# ./get_header.pl https://www.XXXXXXXX.co.jp
Content-Type:   text/plain
Content-Length:
Last-Modified:
Expires:
Server:

と、空値が帰ってきているだけ。う〜む。どうも、SSLeay というモジュールが必要らしい。さっそく CPAN で入れる。

srv# perl -MCPAN -e shell

cpan shell -- CPAN exploration and modules installation (v1.76)
ReadLine support enabled

cpan> install Crypt::SSLeay
Running install for module Crypt::SSLeay
Running make for C/CH/CHAMAS/Crypt-SSLeay-0.51.tar.gz
Fetching with LWP:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/authors/id/C/CH/CHAMAS/Crypt-SSLeay-0.51.tar.gz
CPAN: Digest::MD5 loaded ok
Fetching with LWP:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/authors/id/C/CH/CHAMAS/CHECKSUMS Checksum for /root/.cpan/sources/authors/id/C/CH/CHAMAS/Crypt-SSLeay-0.51.tar.gz ok
Scanning cache /root/.cpan/build for sizes
Deleting from cache: /root/.cpan/build/PerlMagick-6.20 (12.1>10.0 MB)
<略> Crypt-SSLeay-0.51/Makefile.PL

  CPAN.pm: Going to build C/CH/CHAMAS/Crypt-SSLeay-0.51.tar.gz

Found OpenSSL (version OpenSSL 0.9.7) installed at /usr
Which OpenSSL build path do you want to link against? [/usr]<改行>

================================================
BUILD INFORMATION
================================================

ssl dir:        /usr
libraries:      -lssl -lcrypto -lgcc -lRSAglue -lrsaref
include dir:    /usr/include
ssl header:     openssl/ssl.h
ssl candidate:  /usr; /usr/include/openssl; OpenSSL 0.9.7

================================================
<略>
Installing /usr/local/lib/perl5/site_perl/5.6.1/mach/Net/SSL.pm
Installing /usr/local/lib/perl5/site_perl/5.6.1/mach/Crypt/SSLeay.pm
Installing /usr/local/lib/perl5/site_perl/5.6.1/mach/Crypt/SSLeay/MainContext.pm
Installing /usr/local/lib/perl5/site_perl/5.6.1/mach/Crypt/SSLeay/CTX.pm
Installing /usr/local/lib/perl5/site_perl/5.6.1/mach/Crypt/SSLeay/Conn.pm
Installing /usr/local/lib/perl5/site_perl/5.6.1/mach/Crypt/SSLeay/X509.pm
Installing /usr/local/lib/perl5/site_perl/5.6.1/mach/Crypt/SSLeay/Err.pm
Installing /usr/local/lib/perl5/5.6.1/man/man3/Crypt::SSLeay.3
Writing /usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Crypt/SSLeay/.packlist
FreeBSD: Registering installation in the package database
Appending installation info to /usr/local/lib/perl5/5.6.1/mach/perllocal.pod
  /usr/bin/make install  -- OK

cpan> quit
No history written (no histfile specified).
Lockfile removed.

無事インストールされたようだ。

srv# ./get_header.pl https://www.XXXXXXXX.co.jp
Content-Type:   text/html; charset=none
Content-Length: 69090
Last-Modified:  Sat, 29 Oct 2005 13:02:00 GMT
Expires:
Server:         Apache

よっしゃ!OKじゃん!!

前ページに戻る


Copyright (C) 2005 S.Maaasamasa.