証明書チェーンとは、クライアント、サーバなどの証明書から、ルート認証局の認証局証明書までの連なりのことです。

例えば、サーバ証明書が設定されているWebサーバにブラウザでアクセスすると、ブラウザはサーバ証明書の正当性を確認します。
その正当性確認に使われるのが証明書チェーンです。本稿ではその仕組みを解説します。

サーバ証明書は認証局の秘密鍵で署名されています。 クライアントは認証局の公開鍵を使ってサーバ証明書の正当性を確認します。
そのため、クライアントは事前に認証局の公開鍵(認証局証明書)を持っておく必要があります。

認証局は、中間認証局と呼ばれる下位の認証局を持つことができます。最上位にある認証局はルート認証局と呼ばれます。
下位の認証局の認証局証明書は、上位の認証局によって署名がされます。
最上位のルート認証局は、自ら認証局証明書に署名します。

gleas.jp を例として見てみましょう。
gleas.jp のサーバ証明書は「GlobalSign Domain Validation CA – SHA256 – G2」という認証局が署名しています。(本稿執筆時。以下すべて同じ)

「GlobalSign Domain Validation CA – SHA256 – G2」の認証局証明書は「GlobalSign Root CA」が署名しています。
よって、GlobalSign Domain Validation CA – SHA256 – G2 は中間認証局ということがわかります。

「GlobalSign Root CA」はサブジェクト名(証明書の対象)と発行者名が同じになっています。
よって、ルート認証局ということになります。

クライアントは、サーバ証明書を中間認証局の公開鍵によって検証し、中間認証局の認証局証明書をルート認証局の公開鍵によって検証します。

主要なブラウザやOSにはあらかじめルート認証局の公開鍵がインストールされています。
この仕組みによって、ブラウザはサーバの正当性を確認できます。

ブラウザ/OSにあらかじめ公開鍵がインストールされているルート認証局は、監査法人などの厳格な監査を受けています。
一度信頼できる認証局と見なされたとしても、運用などに問題があると判断された場合、ブラウザ/OSベンダーによって信頼するルート認証局のリストから外されるケースもあります。

以前は問題なくアクセスできたウェブサイトが、いつの間にかブラウザやOSによって警告が出るようになるのは、上記のような理由である場合があります。

また、Webサーバに中間認証局の認証局証明書が設定されていない場合や、ルート認証局の認証局証明書がブラウザにインストールされていない場合、証明書チェーンの検証に失敗し、ブラウザのアドレスバーに赤や黄色の文字で警告が出ます。(警告が出る原因は、サーバ証明書の有効期限切れなど、他にも考えられます)

プライベート認証局の場合

プライベート認証局が発行したサーバ証明書が設定されたWebサーバにブラウザでアクセスすると、ブラウザはプライベート認証局の認証局証明書を持っていないためサーバ証明書の正当性を確認できず、警告を出します。

Webサーバに限らず、LANやリモートアクセス環境で、プライベート認証局が発行したサーバ証明書とクライアント証明書を使って電子証明書認証を行う場合、証明書の署名検証のため、サーバとクライアント双方にプライベート認証局の認証局証明書を事前にインポートする必要があります。

その場合、サーバとクライアントは、当該のプライベート認証局が発行する証明書をすべて信頼することになるため、プライベート認証局の設定や運用に不備があると、セキュリティ上の重大な欠陥を抱えることになります。

プライベート認証局を運用する場合は、社内にセキュリティの専門家を置くか、専門家による十分なサポートを受けられる体制が求められます。
また、認証局製品についても実績があり信頼できる製品を選定する必要があると言えます。