2009年2月20日金曜日

PerlでHTTPSアクセス via proxy

PerlにはLWPという非常に便利なモジュールがあり、HTTP及びHTTPS (SSL)によるウェブサーバへのアクセスが、僅か数行のコードで書けてしまいます。しかも、このモジュールはHTTP Proxyもサポートしているのです。ああ、何て素晴らしいモジュール!

しかし、そんなLWPにも弱点があります。

それは、Proxyを通したHTTPSアクセスが出来ない、という点です。これはバグらしいのですが、たまたま私の顧客がこの方法を使う必要があり、大変困りました。

CPAN: #1894: LWP::UserAgent can't reach https sites via proxy

さて、どうしようか、いっそのことJavaで書き直すか、なんて悲壮な決意をしていたところ、素敵なウェブリソースを発見しました。

Perlから、https(SSL)のコンテンツをProxy経由で取得する

ううむ。世の中には似た様な事をやる人がいるものですね。いやはや、大変参考になります。

このページで書かれている事を要約すると、以下の様になります。
  1. LWP::UserAgentのProxyアクセスはHTTPであれば問題無い
  2. LWP::UserAgentのProxyアクセスはHTTPSでは問題がある為、代わりにCrypt::SSLeayのProxyアクセスを使う
ちょっとかっこ悪いコードではありますがPerlのまま目的が達成できるだけ良いです。これをJavaで作り直す事を考えたら・・・ああ、卒倒しそう。

というわけで、今回は何とか問題を回避出来そうです。

0 件のコメント: