自サーバーの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のパスフレーズを省略する方法