さくらのVPSでCentOS7のサーバーを構築する 番外編…Apache再起動時に秘密鍵のパスフレーズ入力をサボる方法
投稿日:2018年02月19日
最終更新日:
もくじ
- 番外編…IPアドレスベースSSL
- 番外編…SNI SSL
- 番外編…Apache再起動時に秘密鍵のパスフレーズ入力をサボる方法
- 注意点
- 方法1…秘密鍵を復号する(パスフレーズ入力を不要にする)
- 方法2…パスフレーズ入力を自動化する
- 番外編…「Let’s Encrypt」でSSL/TLSサーバー証明書を無料で取得する
- 番外編…Cron(noanacron)をインストールする
注意点
このページで解説する方法によって秘密鍵のパスフレーズ入力の手間を省けば、Apacheの再起動作業は楽になり、トラブル対処もやりやすくなります。ただし、その代償としてセキュリティが多少犠牲になるので、秘密鍵を盗まれることがないよう、厳重に管理してください(パスフレーズ入力をする場合でも秘密鍵の厳重管理は必須ですが…)。
方法1…秘密鍵を復号する(パスフレーズ入力を不要にする)
この方法では、秘密鍵を完全に復号してしまい、パスフレーズをいちいち入力しなくても秘密鍵を使えるようにしてしまいます。以下のコマンドで、秘密鍵を復号することができます。なお、コマンド実行前に秘密鍵のバックアップを取るようにしましょう。 [VIM] #秘密鍵はroot以外読み取れない設定にしているのでsudoする sudo openssl rsa -in /etc/httpd/conf/ssl/hoge.key -out /etc/httpd/conf/ssl/hoge.key #秘密鍵のパスフレーズを入力 Enter pass phrase for /etc/httpd/conf/ssl/hoge.key: #以下の文字列が表示されれば成功 writing RSA key [/VIM]
方法2…パスフレーズ入力を自動化する
この方法では、秘密鍵そのものの復号は行いません(パスフレーズの入力は必要なまま)。ただし、シェルスクリプトを用いてパスフレーズの入力を自動化し、パスフレーズ入力の手間は省きます。CentOS7のApache2.4では、SSLの秘密鍵パスフレーズ入力処理はデフォルトで/usr/libexec/httpd-ssl-pass-dialogが担当しており、こいつが秘密鍵のパスフレーズ入力を要求してきます。今回は/usr/libexec/httpd-ssl-pass-dialogを編集し、パスフレーズ入力を自動化します。
[VIM] sudo vim /usr/libexec/httpd-ssl-pass-dialog #以下の記述はコメントアウト #exec /bin/systemd-ask-password “Enter SSL pass phrase for $1 ($2) : ” #以下の記述を追加(pass_phraseは秘密鍵のパスフレーズ) echo “pass_phrase” [/VIM]
編集が完了したら、以下のコマンドで/usr/libexec/httpd-ssl-pass-dialogのパーミッションを変更し、root以外のユーザーが読めないようにします。 [VIM] sudo chmod 700 /usr/libexec/httpd-ssl-pass-dialog [/VIM]
後はApacheを再起動し、正常に動けば成功です。 [VIM] sudo systemctl restart httpd [/VIM]
ちなみに、秘密鍵のパスフレーズ入力スクリプトは以下のディレクティブで指定されています。 [VIM] #/etc/httpd/conf.d/ssl.confに書かれている SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog [/VIM]