ルート証明書について

これは何?

こちらの有名な研修資料を見ていたが、後半のハンズオンで出てくる証明書周りのイメージがピンときていなかったので、メモ。わかりやすく面白いので、今日のある方は是非。

資料が特殊な説明をしている訳ではありません。一般的な知識の整理です。

証明書の種類

いつも出てくるのは以下3つの証明書

  • サーバー証明書
  • 中間証明書
  • ルート証明書

これらに関してよくみる説明は以下のようなもの

  • サーバー側が持つものはサーバー証明書・中間証明書
  • ルート証明書というのが証明の連鎖の起点に存在している

これらについて、以下の疑問があった。

  • ルート証明書の実体はどこに存在している?
  • 普段手元のPCからブラウザなどでアクセスする際、どうやってルート証明書による認証を行っている?

結論は、「OSやブラウザにプリインストールされていて、これを都度使っている」。

CAはたくさんあってプリインストールし切れるものではないのでは?と思ったが、例えばmacなら、信頼しているCAの数は150程度ある(2024年5月現在。CAのリストはAppleで公開されている https://support.apple.com/ja-jp/103272)

信頼しているCAは莫大な数存在しているものと想像していたが、そんなことはなかった。

ちなみに

node等で、以下のようにして証明書を作ることが可能。

bash
# CAを作成(仰々しい!)
npm exec mkcert create-ca

# 作成したCAを使って、証明書を作成
npm exec mkcert create-cert

# CAをキーチェーンに登録し、サーバー証明書が信頼される状態にする
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ./ca.crt

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.