この記事では、HTTPS に関する関連知識を提供します。主に、ブラウザーが HTTPS のデジタル証明書を検証する方法を紹介します。 、HTTP プロトコルと関連する証明書の概念についても説明していますので、一緒に見ていきましょう。皆様のお役に立てれば幸いです。
この記事で解決される問題は次のとおりです。
無料証明書申請サイト:https://freessl.cn
ドメイン名application を指定し、サーバーに解決します
証明書はドメイン名にバインドされています
証明書デプロイメント スクリプトをサーバーにダウンロードしてデプロイします
HTTP プロトコル スタック レベルから、TCP と HTTP の間にセキュリティ層を挿入でき、セキュリティ層を通過するすべてのデータが暗号化または復号化されます。 ,
つまり、HTTPS は HTTP になり、セキュリティ層が最初に通信し、セキュリティ層は TCP と通信します。セキュリティ層でデータの暗号化と復号化のプロセスを完了します。
上記の特性に基づいて、データ送信プロセスでは対称暗号化を使用して、非対称暗号化を使用してキーが容易に公開される問題を解決し、データ伝送効率を確保します。
ブラウザが https ハンドシェイク リンクを開始すると、サーバーに「対称暗号スイート リスト」と「非対称暗号スイート リスト」を通知します。および自己生成された「乱数 client-random」をサポートします。
サーバーはリクエストを受信すると、サポートする暗号化方式を選択してブラウザに通知し、「データ番号サービスランダム」と「サーバーのデジタル証明書」および番号を返します。証明書は「CA組織自体のデジタル証明書」です。
ブラウザは、「サーバーデジタル証明書」と「CA組織デジタル証明書」の有効性を検証します。検証に成功すると、乱数「プレマスター」を生成し、「 「サーバーデジタル証明書」 「デジタル証明書」に含まれる「公開キー」は乱数「プレマスター」を暗号化し、確認のためにサービスに送信します。
サーバーは「サーバー電子証明書」の「秘密鍵」を使って復号し、乱数「プレマスター」を取得し、ブラウザが受信したことを応答します。
ブラウザは、前に生成した乱数「client-random」と「pre-master」、およびサーバーから返された「service-random」を組み合わせて、新しいキーを生成します。マスター シークレット」を選択し、新しいキーを使用してサーバーとサーバー間のデータを暗号化します。
サーバー上の証明書はどこから来たものですか?
CA 組織に適用されるデジタル証明書がサーバー上に展開される場合、通常、CA 組織がサービスに対して発行したデジタル証明書 (一般にゲートウェイ証明書と呼ばれます) に加えて、「CA 組織独自の証明書」も存在します。デジタル証明書」。
CA によってサーバーに発行されたデジタル証明書には何が含まれていますか?
CA 組織に証明書を申請する場合は、少なくとも「組織/個人情報」、「証明書の有効期間」、「証明書の公開鍵」、「CA 組織が発行した証明書のデジタル署名」、「CA」を含めてください。
サーバーにはサーバー自身の証明書のみが展開されていますが、CA 組織からのデジタル証明書がありません。どうすればよいですか?
サーバー上に CA 組織からのデジタル証明書がない場合、ブラウザはインターネットから自動的にデジタル証明書をダウンロードできますが、最初のインターフェイス/ページへのアクセスに時間がかかったり、失敗したりする可能性があります。
まず、ブラウザは証明書に指定されているハッシュ アルゴリズムを使用して、「組織の平文情報」の情報ダイジェストを計算します。 「
では、CA証明書の公開鍵を使ってデジタル証明書内の「デジタル署名」を復号します。復号されたデータも情報ダイジェストです。
最後に、2 つの概要情報が等しいかどうかを判断します。
単純かつ大雑把な解決策は、オペレーティング システムにはすべての CA 組織の証明書が組み込まれており、オペレーティング システムは悪意を持って侵入されていないと想定されます。
妥協案は、CA 組織をルート CA と中間 CA の 2 つのカテゴリに分けることです。通常、中間 CA から証明書を申請し、ルート CA は主に中間 CA による認証に使用されます。中間 CA は、ルート証明書が見つかるまでレベルごとの認証を使用して、ツリー構造を形成して他の中間 CA を認証できます。
証明書には証明書チェーンが存在します。上位組織が何であるかを知ることができます。前の手順と同じアルゴリズムを使用して、上位組織に証明書の信頼性を確認させます。ルート証明書は、業界のブラウザおよびオペレーティング システムのメーカー向けの仕様であるため、タスクが正しく実行されるためには、ルート証明書がオペレーティング システム内で見つかるだけで済みます。
ルート証明書は、オペレーティング システムのインストール時に組み込まれます。内蔵のルート証明書は、WebTrust 国際セキュリティ監査によって認定された信頼できる証明書です。
ルート証明書が合法かどうかを確認するには? ブラウザは、ルート証明書がオペレーティング システムに存在するかどうかを確認します。存在しない場合は違法であり、その逆も同様です。
WebTrust は、AICPA (米国公認会計士協会) と CICA (カナダ公認会計士協会) の 2 つの著名な公認会計士協会が共同開発したセキュリティ監査標準であり、主にシステムをレビューします。論理的なセキュリティや機密性など計7項目について、ほぼ厳格な審査と認証が行われた。 WebTrust 国際セキュリティ監査認証を通じてのみ、ルート証明書を主流のオペレーティング システムにプレインストールし、信頼できる認証局にすることができます。
自己署名 CA 証明書を使用するには、ユーザーが事前に証明書をユーザーのコンピュータ ファイルに組み込むか、サーバー上に配置する必要があります。
ルート証明書は特別な自己署名証明書です。
##推奨学習: 「HTTP ビデオ チュートリアル 」
以上がブラウザで HTTPS デジタル証明書を検証する方法を段階的に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。