WindowsにSSLつきでApacheをインストールする場合、提供されているバイナリ版を使うのが一般的と思います。
しかし、組み込み済みで提供されているのはメンテナンスされているとはいえ0.9系(2014/4現在)、脆弱性が発見された場合どうやってアップデートするのか、というのが問題になります。
地道にコンパイルするという手もありますが、昨今の緊急時にそんなことやってられない、というので更新の方法を紹介します。
結論から言えば、Apache内で使用されているOpenSSLのバイナリを入れ替えるという方法になります(こちらのサイトを参考にしました)。
- OpenSSLをインストールする(x64/x86はApacheのものと合わせること)
http://slproweb.com/products/Win32OpenSSL.html - Apacheを停止し、binフォルダのバックアップを取得しておく
- Apache/bin内の
openssl.exe
、libeay.dll
(またはlibeay32.dll
)、ssleay32.dll
を削除し、OpenSSLをインストールしたbinフォルダ内にあるopenssl.exe
、libeay32.dll
、ssleay32.dll
と入れ替える - Apacheを起動する
これで、Apache内のOpenSSLを1でインストールしたOpenSSLへ更新することができます。
SSLつきのApacheは、インストールしたディレクトリのOPENSSL-README
にもあるとおり、OpenSSLのexe/dllのみを配した簡易版の構成になっているので、これを入れ替えればいいというのが基本線です。
mod_sslはいいの?という気がしますが、mod_sslは2008年から更新されていないいい意味?で枯れたモジュールなので問題ないです。
また、インストールされていない場合はVisual C++ Redistributables (2008) が必要になるので、こちらもインストール。
なお、これから新規にWindowsへApacheを入れる、という場合はApache Loungeにてダウンロードできるバイナリで最新の構成でインストール可能なので、こちらをお勧めします(公式では手に入らない64bit版もあります)。
WindowsでApacheを扱っているとものすごいアウェー感がありますが、仕事で仕方なく・・・という場合もあると思うので、参考になれば幸いです。