【疑問質問】 秘密鍵にパスフレーズを設定したか忘れてしまった場合
2012/10/24
秘密鍵を作成する際に、「パスフレーズ」「Challenge password」の入力を促される場合があります。
ここで何か入力しないと、と思って適当なパスワードを入力すると、証明書の設定時に苦戦するかもしれません。
以下、Apache/OpenSSLのケースで話を進めます。
秘密鍵作成時にパスフレーズを設定すると、秘密鍵をパスワードで保護する事ができます。
ざっくり言ってしまいますと、秘密鍵にアクセスする度にパスワードを求められます。
秘密鍵にアクセスする場面とはApacheの起動時です。
SSL関連の設定を済ませた後にApacheを再起動すると、Apacheは秘密鍵にもアクセスします。
この時、パスワードの入力が必要となり、パスワードを入力するまでApacheは起動できません。
パスワードを忘れてしまった場合、そもそも設定した覚えも無い場合など、色々理由はあるかと思いますが、とにかく起動できません。この初回起動に成功したとしても、証明書が設定されている限り、再起動時にはパスワード、となります。
という事で、秘密鍵の生成時にはパスフレーズを設定しない事をおすすめします。
(当然パスフレーズを設定した方がセキュリティは向上しますが、付箋パスワード的な運用になってしまってはあまり意味がありませんので。)
さて前置きが長くなりましたが、
パスフレーズを設定したか覚えていない、という場合は下記のコマンドで確認できます。
※必ずバックアップをとってからお試し下さい。
openssl rsa -in server.key -out new_server.key
これは秘密鍵のバックアップをするコマンドですが、
パスフレーズを設定している場合は、コマンド実行時に入力を求められますので、
それでパスワードを設定したかどうかが分かります。
ご参考下さいませ。