公開しているサイトにSSL通信を導入すると、Apacheの再起動時に以下のように毎回パスフレーズの入力を求められるようになります。開発環境など再起動のたびに入力するのは非常に手間となるので、ここでは入力をスキップ(自動入力)するための手順をまとめました。
$ service httpd restart
Redirecting to /bin/systemctl restart httpd.service
Enter SSL pass phrase for example.com:443 (RSA) :
シェルスクリプト(sh)を作成する
パスワードを自動応答するためシェルスクリプト(sh)を作成します。ファイルの保存先は任意の場所で大丈夫です。
$ cd /etc/httpd/certs/
$ vi pass_phrase.sh
#!/bin/sh
case $1 in
example.com:443)
echo 'abcdefg';;
esac
exit 0
複数ドメイン対応したい場合は以下のように記載することで対応できます。
#!/bin/sh
case $1 in
example.com:443)
echo 'abcdefg';;
example.jp:443)
echo 'hijklmn';;
esac
exit 0
Apache(ssl.conf)ファイルを編集する
Apacheのssl.confを編集して、作成したシェルスクリプト(pass_phrase.sh)を読み込む形に変更します。
# 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 exec:/usr/libexec/httpd-ssl-pass-dialog
上記の部分の「SSLPassPhraseDialog」の部分を以下のように変更します。
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
↓
SSLPassPhraseDialog exec:/etc/httpd/certs/pass_phrase.sh
Apacheの再起動
修正が終わったらApacheの再起動を行います。再起動時に毎回聞かれていたパスフレーズが聞かれなくなったら設定は完了です。
$ apachectl configtest
$ service httpd restart
少し工夫をすることで、煩わしい作業や手間を減らすことができるのでぜひ活用してください。
それではみなさん、自由なWEBライフをお過ごしください!