10.SSL設定(5) … 秘密鍵のパスフレーズ解除


"公開鍵暗号化方式"の"秘密鍵"はデータの復号化に用いる重要な"鍵"であるため、通常はパスフレーズ(パスワード)がかけられた状態になっている。

よって、この秘密鍵をそのままの状態で"Apache"サーバーに組み込むと、サーバーの起動時に毎回パスフレーズの入力が求められるようになり、正しいパスフレーズが入力されない限りサーバーが起動しないようになる。

これはサーバーを安全に運用する上では重要な機能だが、しかし、例えば停電復旧後にオペレータが操作せずとも自動的にWebサーバーが立ち上がるような運用が必要な場合には障害となってしまうので、以下の手順で秘密鍵のパスフレーズを解除しておく必要がある。

また、そもそも"Apache"の"Windows"版では、このサーバー起動時のパスフレーズ入力の機能はサポートされていないので(ver.2.2.22 時点)、秘密鍵のパスフレーズ解除は必須の作業となる。

(1) "conf"フォルダ下の"server.key"ファイルを"server.key_bk"にリネームする。

(2) コマンドプロンプト画面で以下のコマンドを実行する。

openssl rsa -in server.key_bk -out server.key

(3) "Enter pass phrase for server.key_bk:"のプロンプトに対して、メモ帳画面の文字列をコピー&ペーストする。

Enter pass phrase for server.key_bk: ←文字入力しても何も表示されないので注意。

(4) "Apache"の"conf"フォルダ下に"server.key"ファイルが作成されたことを確認。

(5) "pass phrase.txt"を保存してメモ帳を閉じ、コマンドプロンプト画面も閉じる。


注意 … 秘密鍵のパスフレーズ解除について。

「パスフレーズ」は、「秘密鍵」が万が一第三者の手に渡ってしまった場合に、それを守る「最後の砦」である。

サーバー起動時のパスフレーズ入力の機能がサポートされていない"Windows"版では止むを得ない処置とは言え、しかし、本来的には「秘密鍵のパスフレーズ解除」は「非常に危険な行為」である事を十分に自覚しておく必要がある。

故に、"Windows"版を運用する場合は、管理者を初めとする全てのユーザーにパスワードをキチンと設定し、WebサーバーならびにEDCB("EpgTimerSrv.exe")は必ずサービスとして起動するよう設定(*1)して、ログイン無しで起動できるようにしておく必要がある。間違っても「管理者アカウントでオートログインしてスタートアップメニューからショートカットで起動」などといったような運用はすべきではない。

*1 本資料に従って、"Apache"のセットアップ時の"Server Information"画面において、"Install Apache HTTP Server x.x program and shortcuts for:"ラジオボタンの選択を"for All Usrs"にしてセットアップを行ったのであれば、サービスとして起動するよう設定されている。
EDCB("EpgTimerSrv.exe")のサービス化については、EDCBに同梱されている"Readme_EpgTimer.txt"を参照。