すっかり間があいたけど気にすることはないよ、ただの気まぐれ。
で、ちょいとHTTPしか話せないサーバくんをどうしてもSSL化してHTTPS対応してるふりをさせなきゃいけなくなったので、stoneを使って実現させてみた。まあ、stoneなんて使うの10年ぶりくらい。
やりたいことは以下のとおり。
HTTPSで話したいクライアントくん <-- HTTPS --> localhost:8000(stone) <-- HTTP --> localhost:8080(HTTPしか話せないサーバくん)
ということで、早速stoneのインストールから。
Ubuntuなのでapt-get一発でいけた。
$ sudo apt-get install stone $ stone -h Oct 3 14:42:36.512085 140493228386080 stone 2.3e http://www.gcd.org/sengoku/stone/ Oct 3 14:42:36.512301 140493228386080 Copyright(C)2007 by Hiroaki Sengoku <sengoku@gcd.org> Oct 3 14:42:36.512313 140493228386080 using OpenSSL 0.9.8k 25 Mar 2009 http://www.openssl.org/ Usage: stone <opt>... <stone> [-- <stone>]... opt: -h opt ; help for <opt> more -h stone ; help for <stone> -h ssl ; help for <SSL>, see -q/-z opt
うん、最新版の2.3eが入ったね。
では、やりたいことをやりましょう。
$ stone localhost:8080 8000/ssl
でちゃんとHTTPSでポート8000番叩いたら、あら不思議、HTTPしか話せないサーバくんがHTTPS話してるよ。stone恐るべし!
まあ、所詮オレオレ証明書なんで全然セキュアでないですが、今回はローカルで動けばいいのでオレオレでいいや。