自さばで使ってる Perlbal で SSL を使えるようにしたいと思います。
必要なもの
Perlbal はすでにインストールされているので、SSL 関連のものをインストール。
% sudo aptitude install libssl-dev % cpan IO::Socket::SSL
SSL認証鍵作成
% openssl req -x509 -newkey rsa:1024 -keyout server.key -out server.crt pem -nodes
(毎回このコマンドをコピペして使っているだけで正直よく分かっていないOpenSSL)
設定
今まで使っていた selector。
CREATE SERVICE balancer SET role = selector SET listen = 0.0.0.0:80 SET plugins = vhosts SET persist_client = on VHOST code.norainu.net = svn_proxy VHOST labs.norainu.net = labs_proxy ENABLE balancer
この service は特にいじらず引き続き 80 番ポートの面倒を見る。
で、443 番ポートの面倒を見る selector な service を追加。
CREATE SERVICE balancer_ssl SET role = selector SET listen = 0.0.0.0:443 SET plugins = vhosts VHOST code.norainu.net = svn_proxy VHOST labs.norainu.net = labs_proxy SET enable_ssl = on SET ssl_key_file = /etc/perlbal/certs/server.key SET ssl_cert_file = /etc/perlbal/certs/server.crt SET ssl_cipher_list = ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL ENABLE balancer_ssl
Perlbal で SSL に関する設定は、今回使った4つだけ。実際には、IO::Socket::SSL 経由で Net::SSLeay を使ってるので、そっちで使えるものだけ(?)という感じ。。
確認
再起動して、ちゃんと listen してるか確認。
% sudo /etc/init.d/perlbal restart % sudo lsof -i TCP -nP | grep perlbal perlbal 2200 root 4u IPv4 2861896 TCP *:80 (LISTEN) perlbal 2200 root 6u IPv4 2861898 TCP *:443 (LISTEN) perlbal 2200 root 9u IPv4 2861899 TCP 127.0.0.1:6000 (LISTEN)
おk。ブラウザからのアクセスもちゃんとできた。
Comments