2015年1月20日火曜日

自己署名証明書のSSLサーバ証明書を使う際にブラウザーのエラーを消す方法

日本ベリサイン(今はシマンテック・ウェブサイト・セキュリティという名前になっていることを今回知った)等の公的なサーバ証明書発行期間だと、2年間で20~40万円も費用がかかる。インターネットに公開するシステムであれば、当然公的なサーバ証明書を使うべきだが、社内からのアクセスしか無いシステムの場合は、自己署名証明書で済ませるという場合が多いと思う。

自己署名証明書はベリサインのように「信頼されたルート証明機関」ではないので、毎回毎回ブラウザがご丁寧に警告を出してくる。利用者観点で考えると、毎回同じ警告が出てくるのは嫌だと思うので、この警告を出さないように対応を実施した方が良い。

SSLサーバ証明書の理解

SSLサーバ証明書は以下3点を見て、サイトの安全性を確認する。

  1. ブラウザでアクセスしたURLと証明書のCommon Nameが一致していること
  2. 証明書が信頼された証明機関から発行されていること
  3. 証明書の有効期限が切れていないこと

自己証明書の場合、「2」の信頼された証明機関から発行されていないので当然エラーとなるので、自分で自己証明書を信頼されたものとして端末にインストールしてあげる必要がある。

対応方法

対応は全て端末側で行う必要がある。端末数が多い場合は、DNSやActive Directoryのグループポリシーを利用して設定負荷を軽減した方が良い。

1. URLとCommon Nameを一致させる

DNSによる名前解決やhostsファイルへ登録すれば良い。

2. 証明書の端末へのインストール

「コントロールパネル」→「インターネットオプション」→「コンテンツ」タブ→「証明書」ボタンを選択すると、「証明書」のダイアログボックスが表示される。「信頼されたルート証明機関」タブを選択して、「インポート」ボタンを押すと「証明書のインポート ウィザード」が表示されるので、予め作っておいた自己署名証明書をインポートしてあげればOK。

ちなみに、「個人」とか「信頼された発行元」といったインポート場所もあるが、自己署名証明書はCAから署名がされていない証明書なので、上記にインポートしてしまうとエラーになる。なので、「ルート証明機関」と見なしてインポートしてあげる必要がある。

3. 証明書の有効期限

自己証明書を作成する際に気を付ける。面倒なら最初から10年とか長い期間有効な証明書を作ると良い。どうせ自己署名証明書なので、定期的に作りなおす必要性は個人的には無いと思っている。