信頼チェーンとは何か
参考
https://www.gleas.jp/news/column/certificate-chain/
証明書チェーンとは、クライアント、サーバなどの証明書から、ルート認証局の認証局証明書までの連なりのことです。
例えば、サーバ証明書が設定されているWebサーバに、ブラウザでアクセスすると、ブラウザはサーバ証明書の正当性を確認します。その正当性確認に使われるのが証明書チェーンです。本稿ではその仕組みを解説します。
例でいうと、あなたはブラウザーです。親友のAさん(ルート証明書)がおり、Aさんの親友Cさん(サーバ証明書)を紹介してもらいました。ブラウザーのあなたは、Aさんの紹介ならと思い、Aさんを信頼することでCさんを信頼するという連なるチェーンが作成されます。
本来の証明書では、AさんとCさんの間にBさんという(中間証明書)が存在します。これも同じで、Aさんの紹介Bさんを信頼して、Bさんの紹介Cさんを信頼するようになっております。
正当性の確認方法
上記が、サーバ証明書(qiita.com)(Cさん)の詳細内容です。証明書の署名値というものが、Amazone RSA 2048 M01(Bさん)が信頼できる証として署名したものになります。中身はサーバ証明書(Cさん)の内容をハッシュ値に変換してBさんの秘密鍵でデジタル署名をしたものです。デジタル署名とは、秘密鍵でハッシュ値を暗号化したものです。
Bさんの公開鍵で復号化したハッシュ値とCさんの証明書のハッシュ値を比較して正当性の確認を行います。
Bさんの正当性の確認はAmazon Root CA 1(Aさん)の証明書の署名値で行います。Aさんが信頼できるかどうかはChromeの場合OSの証明書ストアにある証明書かどうかで正当性の判断を行います。証明書ストアにあるものは基本的に認証局が自らを保証する自己証明書があります。
上記のように正当性を判断を行います。
Bさんの公開鍵は基本的には、サーバ証明書をブラウザーに送信する際に一緒に中間証明書も送信します。なので、そこから公開鍵は取得することができます。
参考
udemyのssl-complete
https://www.udemy.com/course/ssl-complete-guide/