Firefox で「サーバが適正な中間証明書を送信しない可能性があります」という表示が出た時に見るページ

あるいは中間証明書の解説

f:id:kasei_san:20180817183111p:plain

原因

中間証明書 がサーバにupされていない

中間証明書ってなあに?

証明書3階層の中間にある証明書

ルート証明書 → **中間証明書** → サーバ証明書

証明書の証明ってどうやっているの?

上位の証明書の公開鍵で電子署名を複合することで、正しい証明書かチェックしている

電子署名 is 何?

証明書の本文のhash値を、発行局の秘密鍵で暗号化したもの

電子署名を使った証明書の証明の流れ

  1. 発行局の証明書(中間証明書)をダウンロード
  2. A.発行局の公開鍵で、電子署名を複合
    1. 証明書の本文のhash値を取得
  3. AとBが一致していることを確認

なお、中間証明書の証明のためには、最上位のルート証明書の公開鍵が必要

ついでに、ルート証明書について

予めブラウザに入っている世界で信頼できるとされている認証局の証明書

ルート証明書は自分の秘密鍵電子署名を作成している(オレオレ証明書)

中間証明書の補完について

ほとんどのブラウザでは、サーバに中間証明書が無くても、勝手になんとかしてくれる

  • 証明書のAuthority Information Access 拡張フィールドに、中間証明書のURLが書かれている
  • これを見て中間証明書を取ってきてくれるらしい

当然対応していないブラウザや、curl などではセキュリティ警告が出る

「俺の環境では動いた」系問題なので厄介

第六種オレオレ証明書

正規の証明書だが中間証明書はupされていない状態

高木浩光先生が命名

第六種オレオレ証明書

正規の認証局(中間認証局)から取得したサーバ証明書であるが、中間認証局の証明書をサーバに設置していないため、クライアントが認証パスを検証できないもの。

高木浩光先生は今後は増加してくのではないかと予測している

(ブラウザで補完してれるので、気づきづらいため)