はじめに
クロスルート証明書を一言で言うと、あるルート証明書から発行されたサーバ証明書を別のルート証明書が設定されているブラウザでも利用できるようにする仕組みです。
上記をもう少し分かりやすく説明するために、本記事ではサーバ証明書やルート証明書については分かっている方向けにクロスルート証明書を解説してみます。
そもそも証明書とは?
サーバ証明書はHTTPSで暗号化通信を行う際にそのWebサーバの公開鍵が本物か?を証明するために利用されます。
その証明を信用ある機関である認証局が行うことにより、このWebサーバと暗号化通信をして良いかどうかをクライアントは判定できます。
ところが、クライアントはそもそもどの認証局が信用があるかどうかを判断しないといけません。
認証局というのは自前でも立てることができるので信用ある認証局が署名したものでないと安全と判断することはできません。
そこで、パソコンやスマートフォンには最初から信用あるルート証明書がインストールされています。
よって、特に設定を行わずともWebサイトの署名が信用に足るかを判断することができる・・という流れです。
例えば上の図でいうところのWebサーバAの証明書に署名した認証局の最上位にあるルート証明書XaがクライアントAにインストールされていれば、特に追加設定なくHTTPSによって通信を行うことができます。
証明書発行によって起こる問題
ところが、例えばルート認証局が新たなルート証明書を発行したとします。
パソコンやスマートフォンはこれに対応可能です。というのも、セキュリティアップデートを行えばルート証明書が更新、または追加されるからです。
しかし、ガラケーのような機器ではルート証明書は出荷時のもので固定されていたりするため、新たなルート証明書の署名の連鎖にいるサーバ証明書が安全と認識できずに、接続ができない事象が発生します。
証明書の署名の連鎖は以下となります。
こうなった場合、片方のルート証明書しか持たないガラケーからの接続は不可です。
割り切りとすることも可能ですが、アクセスを希望するすべてのユーザに対応したい場合もあります。
それを解決するための手段がクロスルート証明書です。
クロスルート証明で解決
結論から言えば、複数のルート証明書から分岐させます。
証明書の署名の連鎖は以下となります。
WebサーバAが行うことは、認証局のクロスルート証明書を取得し、自サーバに配置することです。
これにより、ルート証明書の更新が難しい環境のクライアントもWebサーバに接続でき、Webサイト運営者も顧客を取りこぼすことを防げます。*1
ちなみに、認証局がクロスルート対応の証明書を発行しない場合、そもそもこの対応は不可です。
終わりに
本記事にてクロスルートがあるルート証明書から発行されたサーバ証明書を別のルート証明書が設定されているブラウザでも利用できるようにする仕組みという意味が少しでも掴めたのなら幸いです。
以上、クロスルート証明書の入門記事でした。
*1:1024bitと2048bitの共存によるセキュリティの低下などデメリットもあるため、暫定的な対応であるケースが多いです