SSLを利用している場合
自前でサーバを立てて、SSLの認証取って、利用できるようにしている。
標準的な設定方法に従って作業すれば、設定は難しくない。
例えば、以下のような方法で簡単に設定できる。
(読んで分からない人には、簡単ではないと思うけど・・・)
https://jp.globalsign.com/support/server/03.html
ところが、この方法だと、apacheを再起動する際に、 秘密鍵のパスフレーズを要求される。(上記サイトにもうっすら書いてあるww)
まあ、起動しっぱなしで運用することがほとんどだとは思うけれど、パスフレーズを忘れると、起動できなくなる。
また、スクリプトを通して、再起動やらが実行できない。
コンソールで作業しても、パスフレーズを入力する時間(5秒程度だとは思うけれど)は、apacheが完全に停止した状態になってしまう。
ということで、SSLを有効にしたまま、再起動を自動で行いたい。
設定していない場合
環境はcentOS6.5+apache2です。
例えば、再起動を行うとこんなようなメッセージが表示され、パスフレーズの入力を促されます。
正しく入力すれば、無事起動。
# 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 myservername:443 (RSA)
Enter pass phrase:
OK: Pass Phrase Dialog successful.
[ OK ]
これで問題ないという人には、関係ない話です・・・。
設定してみる
情報を探してみると、いろいろやり方はあるみたいだけれど、安全で比較的わかりやすい方法を採用する。
なんて、バッチリの内容がありました。
すでにインストール&稼働状態まできているので、4.の「Apache起動/再起動時のパスフレーズの入力について」から設定。
# cd /etc/key-fileの置いてある場所
# openssl rsa < server.key > server.key.new
Enter PEM pass phrase: パスフレーズを入力
# mv server.key server.key.org
# mv server.key.new server.key
基本的には、パスフレーズをサーバキーに埋め込んでおいて、利用する方法です。
置いてある場所がわからないなら、ssl.confを探せばOK
SSLCertificateKeyFile に書いてあるはずです。
続いて、/etc/init.d/httpdを編集。
start() {
echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd -DSSL $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
start()ルーチン内の、起動処理にオプションを追加すれば良いらしいので、追加しておく。
正しく書いてあれば、失敗しないとは思うけれど、必要なら文法チェックしておく。
ここまで来たら、再起動。
# service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
あぁ、なんて素敵なんでしょうww
これで、気持ち良く再起動が実行できます。
問題は、パスフレーズを入力しなくなるので、忘れる危険性があるということです。
ドキュメントを作成して、残しておく必要がありますな。
コメント
コメントを投稿
励みになりますので、簡単で良いので一言くださいませ。