0

Web アプリケーションの認証に使用する自己署名証明書を生成しました。クライアントは、Web ブラウザーの代わりにクライアント アプリケーションを使用して Web サーバーと通信します。クライアント アプリケーションは httpclient を使用します。インターネットには、httpclient のすべての ssl 証明書を信頼する方法の例がたくさんあります。すべての証明書を信頼するのではなく、自己署名証明書を 1 つだけ信頼します (もちろん、すべての CA 信頼証明書も信頼します)。keytool を使用して信頼できるキーストアに証明書を追加できることはわかっていますが、JSSE キーストアでインターフェースしたくありません。httpclient が 1 つの特定の自己署名証明書を信頼すると言いたいです。

最初の質問:

出来ますか?

2 番目の質問:

説明されているソリューションは、開発環境では問題ありません。それは悪い習慣だと思いますが、本番環境では許容できるのでしょうか?

4

1 に答える 1

1

出来ますか?

もちろん。トラスト マテリアルを管理し、アプリケーションの SSL コンテキストを初期化するために、さらに多くの作業が必要になる場合があります。唯一無二の証明書を信頼するか、JRE に同梱されている信頼素材を使用してから、アプリケーション固有の信頼素材を選択的に追加するかを選択できます。

からSSLContextBuilderを使用しApache HttpClient 4.3て、信頼と鍵素材の管理と初期化のプロセスを簡素化できます

本番環境で受け入れられますか?

これは、アプリケーションのセキュリティ コンテキストと要件に大きく依存します。標準 CA を信頼せずに 1 つの特定の証明書のみを信頼すると、アプリケーションが中間者攻撃の影響をわずかに受けにくくなる可能性がありますが、問題の証明書が期限切れになるか取り消されるたびに、再構成と、場合によっては再展開が必要になります。また、秘密鍵が悪意のある人の手に渡らないようにすることも、あなたの責任になります。長所と短所の組み合わせです。

于 2013-08-12T08:50:15.943 に答える