SSL使用時に鍵のパスフレーズを抜かずに頑張る方法

ApacheSSL対応サイトを使用する際にはmod_sslを使用するが、SSL秘密鍵パスフレーズがついていると、Apacheの起動時にパスフレーズを聞かれるため、OSサービスに登録しての自動起動ができない。このため、一般的にはよくパスフレーズを抜くという方法を使用する。セキュリティ面を考えると、パスフレーズを抜かずに済めばその方が好ましいわけで、今回はパスフレーズを抜かずにApache自動起動する方法について説明する。

さてこの方法だが、ssl.confで以下のパラメータを使えばOK。


SSLPassPhraseDialog [mod_sslモジュール]
[mod_sslモジュール]部分には、秘密鍵ファイルを開くパスフレーズを入力するためのダイアログタイプを指定する。指定できるのは、builtin または execの2タイプがあり、デフォルト値は、builtinとなっている。では、builtinとexecの2つはそれぞれどう使うのか、続いて説明していく。

1.builtin を指定した場合
httpd 起動時にパスフレーズを対話的に入力しなければならない。パスフレーズを入力するまで、httpd は起動しない。


SSLPassPhraseDialog builtin
2.exec を指定した場合
外部プログラムからパスフレーズを自動的に入力することができる。外部プログラムは、パスフレーズを標準出力に出力する。httpdは標準出力からパスフレーズを受け取る。外部プログラムのパーミッションは、root のみ実行可能(500や700)にしておけばよい。

使用例を以下に示す。

  • ssl.conf設定例


SSLPassPhraseDialog exec:/usr/local/apache2/bin/pp-filter


/usr/local/apache2/bin/pp-filter
#!/bin/sh
echo "パスフレーズ"