パスフレーズ付きでSSLの鍵を作ると、Apache再起動の際にパスフレーズの入力を求められます。
こんな感じです。
通常の起動プロセス
[root@www5254ue ~]# service httpd restart httpd を停止中: [ OK ] 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 weblogy.co.jp:443 (RSA) Enter pass phrase: Apache:mod_ssl:Error: Pass phrase incorrect (5 more retries permitted). Enter pass phrase: OK: Pass Phrase Dialog successful. [ OK ]
でもこれだと再起動の際に毎回入力するのは面倒だし、何より自動再起動の際にここでストップしてしまいます。
そこでこのパスフレーズの入力を省略して起動できるようにしてみましょう。
方法は2つあります。
1.パスフレーズ無しの鍵にする
2.パスフレーズ応答スクリプトを設定する
1.パスフレーズ無しの鍵にする
1については、最初からパスフレーズなしで作る方法と、後からパスフレーズを消す方法とあります。
1-A パスフレーズなしで鍵を生成する場合
通常の作成方法
# openssl genrsa -des3 -out ./ssl.key/xxxxxxx.key 2048
パスワードなしの作成方法
# openssl genrsa -out ./ssl.key/xxxxxxx.key 2048
1-B パスフレーズを後から解除する場合
元ファイルのバックアップ
# cp xxxxxxx.key xxxxxxx.key.org
パスフレーズの解除
# openssl rsa -in xxxxxxx.key -out xxxxxxx.key
これで、パスフレーズ無しの鍵ができます。
パスワード自動応答スクリプトを設置する
まず、パスワードを自動的に応答するシェルスクリプトを書きます。シェルスクリプトと言っても、パスフレーズをエコーするだけの単純なものです。
これはどこに設置してもいいんですが、SSL関連の設定が置いてある/etc/ssl/certs/に置くことにします。
vi /etc/ssl/certs/pass_phrase.sh
#!/bin/sh echo "your passphrase"
実行権限を与えておきます。
chmod 500 /etc/ssl/certs/pass_phrase.sh
次に、SSLの設定を変更します。
# vi /etc/httpd/conf.d/ssl.conf
# 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/certs/pass_phrase.sh
SSL設定の中野、パスフレーズダイアログの部分を、「builtin」から、先ほどのスクリプトの実行指定に変更しました。
これで完成です。再起動を試してみましょう。
# service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
ピンバック: RapidSSLでブログをSSL化してみた | ふぁろぐねっと
ピンバック: RapidSSLでブログをSSL化してみた | ふぁろぐねっと
ピンバック: SSL接続(HTTPS)をやろうとしてはまっている人はiptablesを確認しよう - TECHBIRD | TECHBIRD - プログラミングを楽しく学ぼう