これも、今時ではもう必要ないような知識かもしれないが、備忘録&仕事の記録をかねて。
先日、某所より、Webサーバ(Windows,Apache)にSSLを組み込みたいが、うまくいかないから助けてくれ、との連絡あり。聞くと、「Apache 1.3に、OpenSSLをいれ、mod_sslを組み込もうとしていたが、configureやらmakeやらが通らず、mod_sslが作れない」とのこと。
Apache.orgに、Windows用の1.3系でSSL組み込み済みバイナリがないかな~と思って探してみたが、どうやらSSL組み込み済みは2.x系しかないようだ。1.3系をコンパイルし直すのはちょっと骨が折れそう。
だれか親切な人がApache 1.3系でSSL組み込み済みのWin32バイナリを配布してくれないかなーとググると、
http://hunter.campbus.com/
にあったようだが、現在、すでにサイトがお亡くなりになってる。
これはapache 2.x系を入れるしかないな、と思っていたが、前日になりwebarchive.orgで過去のアーカイブを掘りだせばいけるかもと、試すと、ばっちり取り出せました。
http://web.archive.org/web/*/http://hunter.campbus.com/
ついでに、こちらも発見。
UNOFFICIAL Apache webserver binaries / module binaries
アンオフィシャルと書いてはいるものの、結局、自分でビルドすればそれもアンオフィシャルともいえるわけだし。
SSL組み込み済み1.3系のWin32 バイナリが必要なら、今のうちに保管しておくといいかも。
上記バイナリにはインストーラが付いてないので、ファイル or フォルダごと差し替えればOK
証明書の類はすでに取得済みとし、今回は設定についてのみ書きます。
httpd.conf (追記部分のみ)
※WordPressの都合で、小文字に変換されてしまってますが、実際には、
ifmodule → IfModule
virtualhost → VirtualHost
です。
この設定ファイルのキモは、
SSLPassPhraseDialog exec:ssl/pass.bat
です。
SSLの鍵生成時にパスフレーズを入力した場合、SSL起動時にApacheからパスフレーズの入力が求められます。
WindowsでSSLの設定をしたことがなかったので、どのタイミングでどのウィンドウ(コンソール)にでるのか分かりませんでした。
ここでしばらくハマりました。
最初、なんどやってもApacheのstartコマンドが途中で止まり、Apacheを起動できません。SSLのログを見ると、どうもパスフレーズの入力を促してるようなのですが、Apacheをコマンドライン(DOSプロンプト)から起動しても、パスフレーズ
の入力ができないし、ダイアログらしきものも表示されません。
そこで、パスフレーズを対話的に入力するのではなく、プログラムから流し込む方式にしました。
Apacheのバイナリ(Apache.exe)と同じディレクトリにsslというフォルダを作り、その中に、pass.batというバッチファイルを置きます。pass.batの中身は、
@echo パスフレース
です。つまり、パスフレーズを出力するだけの実行可能なバッチファイルです。これをもって、
SSLPassPhraseDialog exec:ssl/pass.bat
と書くことで、Apacheがパスフレーズをそのコマンドから受け取り、処理を続行できるようになりました。
中間CA証明書について
今回、サーバ証明書はベリサインのセキュア・サーバIDを用いたのですが、さらに中間CA証明書というのを取得して、設定する必要があります。
中間認証局の証明書はなぜ必要なのでしょうか
これがないと具体的にどう問題かというと、一部のブラウザにて証明書の期限が切れているという、アラートがでるようです。(どのブラウザからどういう条件で表示されるかはよく分からない)
中間CA証明書を設定したら、そのブラウザからも警告はでなくなりました。
おそらく、もう二度とApache1.3系にSSLを組み込むような案件はないと思うけれど、誰かの役に立てば、それでよし、としよう。
Popularity: 11% [?]




