Posted at

SSL使用時にApacheの再起動時で必要なパスワードの入力を省略

More than 1 year has passed since last update.


今回やること

SSL証明書を使用する場合、Apacheの再起動時に秘密鍵のパスワードの入力を求められます。

開発段階だと、VirtualHostの設定を変更する度に再起動したりすることが多く、一台に複数のアプリケーションを保持している場合は、それぞれのパスワードの入力が必要になります。

これが結構手間で割と安全に省くことができるので紹介します。


現状の確認


  • CentOS 6.8

  • Apache 2.2.15


Apacheの再起動

$ sudo service httpd restart

Stopping httpd: [ OK ]
Starting httpd: Apache/2.2.15 mod_ssl/2.2.15 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server exapmple.com:443 (RSA)
Enter pass phrase: # ← ここに毎回入力が必要


このパスワードを無しで再起動出来るようにしていきます。


SSL証明書がひとつの場合


パスワード自動応答スクリプトを作成

パスワードを出力するシェルスクリプトを作成しておき、それを読み出すだけで出来ます。


シェルスクリプトの作成

$ sudo vim /etc/ssl/certs/pass_ssl.sh



/etc/ssl/certs/pass_ssl.sh

#!/bin/sh

echo 'tVKJDtQf4euzCPss'

rootのみ読み書きできるようにしておきます。


権限の変更

$ sudo chmod 500 /etc/ssl/certs/pass_ssl.sh



Apache の設定

Apacheの設定ファイルを変更します。

例)/etc/httpd/conf.d/vhost.conf


/etc/httpd/conf.d/vhost.conf

# SSLPassPhraseDialog  builtin  # ← コメントアウト

SSLPassPhraseDialog exec:/etc/ssl/certs/pass_ssl.sh

これでApacheを再起動した場合にもパスワードの入力を省略出来ます。


SSL証明書を複数管理している場合

SSLPassPhraseDialogVirtualHost 内に入れることができないため、/etc/ssl/certs/pass_ssl.sh に多少工夫が必要です。


パスワード自動応答スクリプトを作成

例えば、example1.comexample2.com のふたつのドメインがあると仮定します。

$ sudo vim /etc/ssl/certs/pass_ssl.sh


/etc/ssl/certs/pass_ssl.sh

#!/bin/sh

case $1 in
example1.com:443)
echo 'W4g0B1OAxKCGoaZm';;
example2.jp:443)
echo '2Ly8t0qOFVkdaRew';;
esac
exit 0

この場合も、rootのみ読み書きできるようにしておきます。


権限の変更

$ sudo chmod 500 /etc/ssl/certs/pass_ssl.sh



Apacheの設定

Apacheの設定ファイルを変更します。

例)/etc/httpd/conf.d/vhost.conf


/etc/httpd/conf.d/vhost.conf

# SSLPassPhraseDialog  builtin  # ← コメントアウト

SSLPassPhraseDialog exec:/etc/ssl/certs/pass_ssl.sh

これでApacheを再起動をすると、パスワードの入力を省略できます。


まとめ

案外面倒だったので、結構便利です。

この方法以外にも、秘密鍵のパスフレーズを削除する方法もあるそうです。

参考:apacheで複数のバーチャルホストでSSLキーのパスフレーズが異なる場合のSSLPassPhraseDialogの書き方


おまけ

フォローお待ちしています!

サービス紹介

「数学→プログラミング→Webアプリケーション」まで一気に学べる機械学習のマンツーマン家庭教師サービス「キカガク」に興味のある方はお気軽にご連絡ください。