今日は、利用しているSSLの鍵にパスフレーズが設定されているかどうかを調べる方法についてめもめも。
例えば、apacheを再起動しなければならなくなった場合
そのapacheはSSL設定がされており、https:// なWEBサーバであると、再起動かけたとき
# /usr/local/apache2/bin/apachectl restart Enter pass phrase for /path/to/ssl.key:のようにパスフレーズを求められて、
apacheが停止したところで止まってしまい、起動出来なくなってしまいます。これはエライコッチャ!
こんな場合は、事前にSSL鍵にパスフレーズが設定されているかどうかチェックしておきましょう。
まず、apacheのSSL設定ファイル(通常はhttpd-ssl.confかな)にあるSSLCertificateKeyFileを見て、SSL鍵パスを確認します。
# cat /usr/local/apache2/conf/extra/httpd-ssl.conf | grep SSLCertificateKeyFile
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/ssl.key"
例えばこのように出力されて、鍵ファイルのパスがわかります。このファイルを openssl コマンドでパスフレーズ設定されているかどうか確認します。
# openssl rsa -in /usr/local/apache2/conf/ssl/ssl.keyとコマンドを打って
・パスフレーズ設定されている場合
Enter pass phrase for /usr/local/apache2/conf/ssl/ssl.key:これは要注意です!
・パスフレーズ設定されていない場合
Writing RSA key ----- BEGIN RSA PRIVATE KEY ----- LKDFopa99yjkfslkKgudkdf...のように鍵ファイルを表示できれば設定されていません!
これで、apache再起動時に焦ることもなくなりますね。
僕は、開発環境でパスフレーズ設定されたapacheを再起動してしまい、「あれぇ」となった事があります。
ちなみにパスフレーズ設定されたSSL証明書鍵のパスフレーズを解除してしまう方法ですが、(セキュリティ的に危ないので本番サーバとかでは要検討!)
// バックアップを取る # cp ssl.key ssl.key.bak // パスフレーズ解除 # openssl rsa -in ssl.key -out new_ssl.key Enter pass phrase for ssl.key: // ここでパスフレーズを入力です。
new_ssl.keyというパスフレーズの設定されていないSSL証明書鍵が出来ました。
以上でぇぇぇぇす。
0 件のコメント:
コメントを投稿