ApacheとSSL
新しい案件のリリースがあったんですが(じつはリアルタイムで進行中)、SSL導入でもめたのでメモ。
Apache2のSSLは、mod_sslがhttpd.confで呼ばれていれば利用可能。ディストリ付属のApacheだったりすると、httpd.confとかに記述ルールが掲載されています。
まあ、大体はssl.confとか、類似する名前の.confファイルがあると思うので、コピーしてもいいし新規に作成してもいいので、中に下記のような記述をします。
<VirtualHost *:443> SSLEngine on SSLCertificateFile /home/USER/ssl/website.crt SSLCertificateKeyFile /home/USER/ssl/website.key </VirtualHost>
最低限これだけあれば動きます(まじで最低限だよ)。
あとはmod_rewriteで、特定のディレクトリだけhttpsに振り分けるとかすればおk。もしくはもうプログラム側でhttpsへのルールを書くとかそんなん。
けどこんな事しなくても、frontにpoundおけば解決なんですよね。そもそも、apacheのsslとか、VirtualHostで複数運営している所はポート分けないと複数設置できないし。
で、なんでこんな事言ってるかというと、上記のサービスリリースで、なぜかうちの社長が
「Passengerで個別にサービス動かせるんだからSSLも対応できるだろjk」といった感じで、ネームベースでのVirtualHostは無理だとあれほど言って(略)。
※その後、不定期にssl部だけボカーンと落ちる現象が多発中。なぜか様子を見よう!と言い出す社長とふざけんじゃねえ!とブチ切れるPM。そして客に怒られるPM。がんばれPM、まけるなPM!社長がlighttpdの設定よく分からないとか言わなくなるその日まで!