web-dev-qa-db-ja.com

PKCS12ファイルに秘密キーがあるのはなぜですか

私の理解によると、サーバーの保護されたエンドポイントにアクセスする場合は、サーバーによって提供されるPKCS12ファイルをアプリケーションとしてアプリケーションにインポートする必要があります。

PKCS12ファイルには、サーバーの証明書と暗号化された秘密鍵が含まれています。このファイルは、サーバーのRESTエンドポイントに安全に接続することを望むすべてのクライアントに配布されます。私の理解は間違っていますか?そうでない場合、私の質問はなぜサーバーはPKCS12ファイルに秘密鍵を追加する必要があります?潜在的にセキュリティの問題ではありませんか?

暗号化は公開鍵を使用してのみ行われ、秘密鍵を知る必要はありません。

4
Akeshwar Jha

クライアントが使用するPKCS12には、秘密鍵と証明書/チェーンクライアント用が含まれている必要があります。これは、クライアントを認証するために使用され、サーバーがSSL/TLS接続が正当な/承認されたクライアントからのものであることを認識します。この接続での要求は受け入れられるか、適切な特権を与えられる必要があります。理想的にはクライアントshouldサーバーが信頼するCAによって発行された、またはサーバー自体によって発行された証明書と組み合わせて、それ自体が生成したキーを使用しますが、状況によってはサーバー管理者のような権限がキーを提供するだけですおよび PKCS12の証明書。PKIの仕組み、キーの生成方法、および間違ったタイプではないキーの生成方法について、ユーザーに1日20時間または30時間費やす必要はありません。または、短すぎるか、それ以外の場合は受け入れられない方法と、CSRにデータを入力する方法とis CSRと、CSRが証明書ではなく、キーでもない理由と、CSRに欠陥があった理由と方法彼らは正しいデータをCSRに入力する必要があります。これにより、実際に機能し、2時間前に生成したキーを探す方法が失われたり、削除されたり、上書きされたり、他の何かに変換されたり、間違ったマシンなど.

クライアントの鍵ペアはサーバーの鍵ペアとは異なる必要があり、サーバーの秘密鍵は、クライアントに、または鍵のバックアップ機能または代替サーバー以外の場所に配布してはなりません。 serverが自己署名証明書または事前に信頼されていないCAによって発行された証明書を使用している場合、サーバーの信頼アンカーとして機能するcert(キーではない) 、自己署名の場合は証明書自体、それ以外の場合は通常はCAルート証明書であり、クライアントで信頼できるものとしてインポートする必要があります。

7