できない.dev

CA 証明書

別名: ルート証明書 / CA バンドル / 信頼ストア / Certificate Authority

サーバー証明書に署名する認証局(CA)自身の証明書。
HTTPS のクライアントは、手元で信頼する CA 証明書の束(CA バンドル)まで証明書チェーンをたどれるかを検証し、たどれなければ接続を拒否する。

公開:

定義

CA 証明書は、サーバー証明書に署名する認証局(CA: Certificate Authority)自身の証明書である。
HTTPS のクライアントは、サーバーが提示した証明書から中間証明書をたどり、手元で信頼するルート CA の証明書に行き着くかを検証する。
信頼する CA 証明書の集まりを CA バンドル(信頼ストア)と呼び、行き着かなければ接続を打ち切る。

詳細

どの CA バンドルを見るかはツールごとに違う。
curl の既定の CA ストアはビルド時に決まり、--cacert や CURL_CA_BUNDLE で差し替えられる。Node.js は既定で本体同梱の Mozilla の CA ストアを使い、NODE_EXTRA_CA_CERTS で証明書を追加する。
pip は 24.2 以降、certifi に加えて OS の証明書も使う。
社内プロキシが TLS を中継して独自の CA で証明書を差し替える環境では、その CA がツールの信頼ストアに無いため、curl の unable to get local issuer certificate などが出る。

よくある誤解

関連

チェーンがつながらない原因には、サーバーが中間証明書を送っていない場合もある。
こちらはサーバー側の設定で直す。
CA バンドルの場所は環境変数で渡すことが多い。

この記事は役立ちましたか?