« サーバー復旧奮戦記(1) | メイン | サーバー復旧奮戦記(3.セキュリティー強化) »

2017年12月 8日 (金)

サーバー復旧奮戦記(2.SSLの設定)

時々、思い出したように書き込みをしていましたが、ブログ:WebLog のこと、log:航海日誌、日々の記録ということなので、出来るだけたくさん書くことにしました。豊富なネタがあるわけではないので、多分、面白くないし、「ためになる」事が書けるわけがない。。
このページに迷い込んだ方にはお詫び申し上げます。

サーバーアプリが動くようになったし、後はSSLの設定をすれば(ほぼ)OK。なんですが、keystore の復旧に失敗してしまいました。keystore 内の情報は暗号化されていて、ファイルの中身を覗いてみても何がなんやら全く分かりません・・この状態から復旧させるのは「原理的には可能」という程度で、事実上不可能です。こうなると、SSL屋さんに証明書を再発行してもらうしかない。

用語の説明
keystore:SSLに使う公開鍵、秘密鍵を格納したWebサーバー上のファイル。1つのkeystore に複数の秘密鍵、公開鍵の「鍵ペア」を格納できる。
alias:keystore 内の「鍵ペア」の名前。
keytool:Java の、keystore を管理するプログラムの名前。

まず、keytool で鍵のペアを作成して、それを格納した keystore を作ります。これで秘密鍵、公開鍵のペアが出来るのですが、このままでは使えません。なぜなら、鍵の発行者と「この鍵は正しい」という証明をしている者が同一だからです。いわゆる「オレオレ証明書」というやつです。で、どうするかというと、「認証局」と呼ばれる証明書発行業者に証明書の発行を依頼するんです。
証明書発行を依頼して、証明書が届くのを待ちます。数日かかりました。この証明書を最初に作成した keystore にインポートすれば完了なんですが、ここでハマってしまいました。

【もしあなたがSSLの設定をしなくてはならないならば】
証明書は CSR を作成した時の keystore にしかインポートできません。誤操作などで keystore を壊してしまうと、証明書を再発行してもらうしか方法がなくなります。CSR を作成した時の keystore は必ずバックアップしましょう。keystore は単なるファイルなので、普通のファイルと同じようにコピー、削除などができます。インポートに失敗しても、バックアップがあればそれをコピーして何度でもやり直す事ができます。

keytool を使ってインポートしました。エラーもなく簡単に完了しました。Tomcat を再起動してテストすると、「alias XXXX はキーエントリを発見できませんでした」となり、動作しない。これって、keystore にその名前の鍵がないって意味じゃあないの?。

バックアップをコピーしようかとも思ったのですが、何が起こっているのか知りたかったので、もう少しねばる事にしました。

調べた結果は、「keytool が keystore に書き込む時、keystore が存在しなければ、指定された名前の keystore を作成する」のですが、keystore を作成するフォルダが問題でした。

フォルダが指定されていなければデフォルトのフォルダに作成するのですが、デフォルトのフォルダは環境変数 XXX が示すフォルダ以下の・・・なんです。どうやら Tomcat が起動しているか否かで環境変数 XXX が示すフォルダが異なるようなのです。証明者発行依頼を作成した時に Tomcat が動いていたかどうか・・なんて、覚えていない。

そう言えば、Tomcat の起動スクリプトは環境変数をいじりまわっていますよね・・・。

ファイルを検索すると、最初に作成した keystore 以外に予期していなかったフォルダにkeystore が作成されています。keystore の内容、作成日付を手掛かりに、最初に使用した keystore を特定して、その keystore に対してインポートすればOK。でしょう。きっと。

keystore の名前に絶対パスを記述してインポートを試みました。最初に X.509 形式の証明書のインポートを試みましたが、「応答からの連鎖を確立できませんでした」となり、失敗。・・・X.509 はサポートされていると思うんだけど・・・
続いて PKCS #7 形式のサーバー証明書のインポートを試みる。成功。
ついでに PKCS #7 の中間証明書もインポート。これはサーバー証明書をインポートした keystore に、他と重複しない任意の alias でインポートすればOKです。
Tomcat を再起動してテストすると、めでたくブラウザに「鍵マーク」が表示されました。よかった、良かった。
ハマっていたのは1日半、フォルダの問題に気付いてからインポート完了まで30分ほど。PKCS #7 形式の証明書のインポートは数秒。うまくいった時って、あっけないんですよね。

これで完了と思ったのですが、続きがありました。やれやれ。

コメント

コメントを投稿