オレオレ証明書とルート証明書

前回は、オレオレ証明書をopensslで作る という記事を書いたので、そこで説明が足りなかった部分を補足として書いておこうと思う。

今回は、認証局ルート証明書とその階層構造、そしてブラウザでの確認まわり。

ブラウザでサーバ証明書を観察する

具体的な事例でやった方が分かりやすいと思うので、はてなサーバ証明書を見てみようと思う。トップページから[ログイン]で出るログイン画面 https://www.hatena.ne.jp/login で確認する。

まず、Webブラウザでのサーバ証明書の確認方法を知っておこう。

サーバ証明書の確認方法

使っているブラウザによって多少違うけど、IEならばアドレスバーの右側の鍵マークをクリックして「証明書の表示」をクリックする。

なお、IE6など古いIEの場合は、ページ表示部分を右クリックして「プロパティ」から証明書の表示ができる。

Mac OS XSafariなら、ウィンドウ右上の小さな鍵マークをクリックする。

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である、ルート証明書とはオレオレ証明書である。ただ、MicrosoftAppleも、ベリサインやCybertrustを信用しているから、信頼されたルート証明機関としているのである。

ちなみにルート証明機関はたくさんあり、その中にはちょっと変わったものもある。

Go Daddyとは何かの冗談みたいだが、これはアメリカの老舗のホスティング事業者で、登録数では世界一のレジストラである。

鍵長1024bitについて

さて、もう一度、はてなサーバ証明書に戻って。

この証明書は鍵長が1024bitだが、これはいささか時代遅れである。例えばベリサインは既に1024bitの受付は停止しており、2048bitを使うように告知している。

また、はてなが利用しているCybertrustも、1024bitの証明書はもうすぐ受付停止する。

ちなみにCybertrustはもともと2012年12月末で受付停止と言っていたのだが、受付を延期したのは、おそらくベリサインなど他社から客を奪いたいからであろう :-)