web-dev-qa-db-ja.com

クライアントのSSL信頼機関にルート証明書と中間証明書のみを含める必要がありますか?

情報が競合しています。証明書の管理に費やしたい労力や、使用しているアプリケーションによって、証明書の使用方法が少し異なるようです。

クライアント証明書は別として、これは私の理解です。サーバーにはCAからの署名付き証明書があります。クライアントは、信頼された機関にCAの中間証明書またはルート証明書、あるいはその両方のみを含める必要があります(ストアはもちろんアプリケーションによって異なります)。新しいまたは更新されたホスト証明書が同じルートを使用している限り、クライアントはサーバーの証明書の変更について心配する必要はありません。

私が扱っているFTPパートナーは、サーバー証明書を更新または変更して、私に送信しています。信頼された機関にサーバー証明書を追加するだけで、クライアントの多くの実装が見られます。私は(私が知っていると思いますが)、これらの証明書の有効期限が(年に)いつ切れるかを管理するだけでなく、CRLの利点を失う(またはCRLはOSとブラウザーでのみ機能するのですか?)自分だけを追加すると思ったTrusted Authorityストアへの署名付き証明書。

では、信頼された機関ストアにルートと中間体のみを追加したいのですか、それとも各サーバー証明書を追加することの利点がありますか?これは本当に重要ですか、それは単なる好みですか?

5
Mike

信頼の連鎖は、信頼できる証明書のどこかにアンカーされている必要があります。 「ルート」証明書(どちらでもよい)を追加するだけで、その信頼を確立できます。ただし、サーバー証明書を信頼できる証明書にリンクするチェーン証明書が接続中にサーバーから送信されず、クライアントにそのチェーン証明書のコピーがない場合、信頼の完全なチェーンを確立できません。

その場合は、中間証明書を追加すると役立ちます。サーバー自身の証明書は常にSSLネゴシエーション中に送信されるため、その証明書を信頼すると、そこに信頼権が固定され、他の信頼できる機関に検証する必要がなくなり、途中でコンポーネントが欠落する可能性を回避できます。

CRLについては、サーバー証明書を直接信頼する場合、CRLは参照されません。 CRLの確認はクライアントソフトウェアの実装次第であり、サポートされている機能である場合とそうでない場合があります。

3
tylerl

あなたの質問に答えるために、(セキュリティの観点から)サーバー証明書を信頼できるストアに追加することは問題ありません。 CA証明書またはサーバー証明書自体を追加できます。

主なトレードオフは、セキュリティではなく管理性に関係しています。管理性の問題のいくつかをうまく説明しました。

サーバーの証明書が既知のCAによって署名されている場合、通常行うことは、信頼できるストアにCA証明書を追加することです。ただし、通信相手がCAによって認証されていない自己署名証明書を使用している可能性があります。その場合、信頼できるストアにCAを追加することはできません。また、信頼できるストアにサーバー証明書を追加しなければならない場合があります。

2
D.W.