自己署名証明書に関するいくつかの基本的な質問
質問1
自己署名証明書にはCAが必要ですか? 「実際の」証明書は、チェーン検証できる他の方法と同様に、自己署名が必要なことを理解しています。
質問2
自己署名がCAを取得していない場合-それを信頼できるCAストアに入れて、テストに使用するときにチェーン検証エラーが発生しないようにする必要がありますか?
質問
自己署名証明書がCAによって署名されているかどうかを確認する方法はありますか-CAがある場合、上記の質問に影響しますか?次に、CAを信頼する必要がありますか、それとも実際の証明書をCAストアに置いて、たとえば安全なSSLチャネルを作成できますか?
証明書は、それを発行するCAによって署名されています。自己署名証明書は、定義上、CAから発行されたものではありません(このように表示したい場合は、独自のCAです)。
証明書はCAの能力を持っている、つまり、cA
フラグがTRUE
に設定されたBasic Constraints
拡張を含むかどうかに応じて、他の証明書に署名するかどうかに応じて信頼できます(cf 標準 )。
何が起こるかは次のとおりです。一部のアプリケーションが証明書を検証する必要がある場合(たとえば、サーバーでSSLを実行する必要があり、サーバーの証明書を取得したばかりのWebブラウザー)、証明書チェーンを構築する必要があります。 =「トラストアンカー」(「信頼されたルート」証明書ストア内の証明書の1つ)で始まり、検証する証明書(「エンドエンティティ」として「EE」と呼ばれる)で終わります。チェーンが有効であるための正確なルールは intricate であり、詳細が満載です。この答えの目的のために、これらの必要な条件に自分自身を制限しましょう:
cA
フラグがTRUE
に設定されたBasic Constraints
拡張があります。したがって、自己署名されたCA証明書ではなく、トラストアンカーとして使用された場合、有効なエンドエンティティ証明書としてとして受け入れられます(つまり、その証明書に完全に縮小されたチェーンで)。これは通常のケースです。ブラウザーユーザーとして、特定の自己署名証明書を有効なものとして受け入れる場合は、実際にブラウザーに自己署名証明書をトラストアンカーにする必要があることを伝えますが、実際にはそうしますnot他の名前で他の証明書を発行するためにその証明書を信頼したい!あなたはそれを信頼したいonly特定のサイトを認証するために。
通常どおり、詳細は異なる場合があります-すべてのブラウザがまったく同じように反応するわけではありません。しかし、中心的な概念は残っています。
チェーンが単一の証明書に削減される場合、つまりエンドエンティティがトラストアンカーでもある場合、これはdirect trustと呼ばれます:特定の証明書信頼できるCAから発行されているために信頼されているのではなく、正確に既知であることによって信頼されている。
いいえ。自己署名証明書はCAによって署名されていません。それ自体が署名しています。ただし、すべてのCAは、他の証明書の署名に使用される自己署名証明書を公開します。 「信頼できるCA」とは、オペレーティングシステムまたはブラウザに含まれているCA、またはユーザーが明示的に信頼することを選択したCAです。
自己署名証明書に依存します。これをCAとして使用し、組織内の他の証明書に署名する場合は、信頼できるCAストアにmightを追加します。特定のサーバーを認証するためだけに使用され、CAとして使用されない場合は、「信頼された発行元」などの別のストアに含めます。それでも、証明書が慎重に保存および処理されていることを確認するように注意します。証明書を取得したユーザーは、証明書を信頼しているマシンに対してやりたいことをすべて実行できます。信頼できるCAストアにランダムな証明書を配置することはありません。
自己署名証明書は信頼の連鎖の最後にあります-「私は自分の親です」と書かれています。通常の証明書に署名する証明書のチェーンを検証することは、自己署名証明書が見つかるまでずっと、各署名者の署名を検証することを意味します。その時点で、自己署名証明書が信頼できるCAストアにある必要があります。