オレオレ証明書とルート証明書
前回は、オレオレ証明書をopensslで作る という記事を書いたので、そこで説明が足りなかった部分を補足として書いておこうと思う。
今回は、認証局とルート証明書とその階層構造、そしてブラウザでの確認まわり。
ブラウザでサーバ証明書を観察する
具体的な事例でやった方が分かりやすいと思うので、はてなのサーバ証明書を見てみようと思う。トップページから[ログイン]で出るログイン画面 https://www.hatena.ne.jp/login で確認する。
まず、Webブラウザでのサーバ証明書の確認方法を知っておこう。
サーバ証明書の確認方法
使っているブラウザによって多少違うけど、IEならばアドレスバーの右側の鍵マークをクリックして「証明書の表示」をクリックする。
なお、IE6など古いIEの場合は、ページ表示部分を右クリックして「プロパティ」から証明書の表示ができる。
Mac OS XでSafariなら、ウィンドウ右上の小さな鍵マークをクリックする。
Firefoxならば、アドレスバー左側の鍵マークをクリックする。
はてなのサーバ証明書
それでは、はてなのサーバ証明書を見てみよう。
www.hatena.ne.jpのサーバ証明書は、[Cybertrust Japan Public CA G1]が署名している。これが認証局のルート証明書だろうか? 実はそうではない。
[証明のパス]を見ると、この[Cybertrust Japan Public CA G1]の上に、[GTE CyberTrust Global Root]がある。
実際にCybertrust Japan Public CA G1の証明書を見てみても、[Cybertrust Japan Public CA G1]には[GTE CyberTrust Global Root]が署名している。
では、このGTE CyberTrust Global Rootが認証曲のルート証明書だろうか? それを確認するために、Webブラウザの設定を見てみよう。
IEならば、[ツール]→[インターネットオプション]から[コンテンツ]→[証明書]を選ぶ。
ここで「信頼されたルート証明機関」を見る。たくさんあるが、この中に[GTE CyberTrust Global Root]があるかと探してみると……あった! 間違えないようだ。
ではルート証明機関の証明書を見てみよう。右下の「表示」ボタンを押すと、ルート証明書を見ることができる。
「あれっ? 発行先と発行者が同じ……オレオレ証明書じゃないか!?」という疑問を持っただろうか? 答えはYesである、ルート証明書とはオレオレ証明書である。ただ、MicrosoftもAppleも、ベリサインやCybertrustを信用しているから、信頼されたルート証明機関としているのである。
ちなみにルート証明機関はたくさんあり、その中にはちょっと変わったものもある。
Go Daddyとは何かの冗談みたいだが、これはアメリカの老舗のホスティング事業者で、登録数では世界一のレジストラである。