読者です 読者をやめる 読者になる 読者になる

なんちゃってウェブ系エンジニアの備忘録

某IT企業で働くなんちゃってウェブ系エンジニアが技術やデザインなど役に立ちそうなものなどを備忘録として載せていきます

Apacheを起動する際、SSL秘密鍵のパスフレーズを自動で読み込む

SSL対応のサイトでApacheを起動する際、パスフレーズの入力するよう訊かれます。
Apacheを自動起動するようなケースがあった場合、パスフレーズ入力をしない限り
先へ進めない。

そこでパスフレーズを自動で読み込む方法がありましたので、
簡単にまとめておきます。

まずは、Apacheのconfファイルを開きSSL使用時に鍵のパスフレーズ設定を
読み込ませるパスを設定します。

ssl.conf

SSLPassPhraseDialog exec:/usr/local/apache/sbin/pp-filter

証明書のパスフレーズを入力させるスクリプトを以下のように作成します。

/usr/local/apache/sbin/pp-filter

#!/bin/sh
echo "ここにパスフレーズを入れる"

あとは、パーミッションの設定を環境に合わせて設定していくことですね。
このような感じで設定していけば、Apache起動する際、SSLを自動的に有効にすることが可能です。

また、バーチャルホストで構築してて、サーバーごとに違うパスフレーズ
設定する場合は、以下を参照すると良い。

apacheで複数のバーチャルホストでSSLキーのパスフレーズが異なる場合のSSLPassPhraseDialogの書き方 - 日記のような何か

 #!/bin/sh
    case $1 in
        www1.example.jp:443)
            /bin/echo "server1.keyのパスフレーズ"
            ;;
        www2.example.jp:8443)
            /bin/echo "server2.keyのパスフレーズ"
            ;;
    esac
exit 0

SSL秘密鍵のパスフレーズを自動で読み込むことはセキュリティ的にはあまり好ましくありませんが・・・
くれぐれも注意してください。