自宅Debian(wheezy)サーバーで起動時にSSL秘密鍵のパスフレーズを自動入力させる方法

2014/10/05[公開]

自サーバーのWordPressサイトをまるごとSSL通信にした際、毎回サーバー起動時にapache2がパスフレーズの入力を求めるようになり、手入力するまで止まってしまうようになりました。

セキュリティ的にはこのままが一番良いでしょうが、自サーバーはSSHでの操作オンリーの運用なのに、サーバーの近くにいるときにしか再起動できないのは不便すぎます。

例によってググって対応した備忘録です。

このページの目次

スポンサー リンク

パスフレーズ入力をスクリプト化

パスフレーズ解除した秘密鍵ファイルを使う方法もあるようですが、少しでもセキュリティ的に安全なパスフレーズをスクリプト入力する方法を利用します。

パスフレーズを記述したスクリプトファイルを作成

任意の場所にスクリプトファイルを作成します。

例:/etc/ssl/private/ディレクトリにmy-passphrase.shを作成します。

nano /etc/ssl/private/my-passphrase.sh
#!/bin/sh
echo "123456789"

パスフレーズを” “で括ります。

「Ctrl+X」→Y→Enterで保存します。

管理者のみ実行権限付きパーミッションに変更します。

chmod 500 /etc/ssl/private/my-passphrase.sh

SSL.confファイルの記述を変更。

Debianの場合は、/etc/apache2/mods-available/ssl.conf です。

nano /etc/apache2/mods-available/ssl.conf

36行目あたりを変更します。

# Pass Phrase Dialog:
# Configure the pass phrase gathering process.
# The filtering dialog program (`builtin' is a internal
# terminal dialog) has to provide the pass phrase on stdout.
#SSLPassPhraseDialog builtin
SSLPassPhraseDialog exec:/etc/ssl/private/my-passphrase.sh

36行目をコメントアウト、37行目を追加しています。

「Ctrl+X」→Y→Enterで保存します。

動作確認

apacheを再起動します。

/etc/init.d/apache2 restart

エラーが出なければOKです。

バーチャルホストで複数の秘密鍵パスフレーズがある場合

当サイトは、バーチャルホストで二つのサイトに別々のSSL証明書を使っています。

その場合は、スクリプトファイルの記述を下記のようにすると良いとのこと。

 ※アドレスなどは自サーバーの場合の例です。

#!/bin/sh

case $1 in
    www.ikt-s.com:443)
        /bin/echo "12345"
        ;;
    blog.ikt-s.com:443)
        /bin/echo "67890"
        ;;
esac
exit 0

apacheを再起動します。

/etc/init.d/apache2 restart

エラーが出なければOKです。

参考にさせて頂いたサイト

スポンサー リンク

Apacheの起動時にSSLのパスフレーズを省略する方法

http://takuya-1st.hatenablog.jp/entry/20110208/1297157015

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です