3

SSL をサポートするほとんどの Web ブラウザには、証明書を自動的に受け入れる CA のリストがあります。認証 CA がリストにある証明書をブラウザーが検出すると、ブラウザーは自動的に証明書を受け入れ、サイトへの SSL 接続を確立します。

JBoss 7 で実行されている Java 1.6 クライアントがあり、LDAP サーバーへの SSL 接続を確立するために必要です。クライアントは本番環境にあるため、JBoss で証明書を適宜更新するように通知せずに LDAP サーバーが証明書を更新すると、クライアントは失敗します。私の質問は、ブラウザが証明書をシームレスに「受け入れる」のと同様の方法で LDAP に安全に接続 (ssl) するにはどうすればよいですか?

これがJavaで実現可能かどうかはわかりません。しかし、どんな考えやフィードバックも大歓迎です。

4

1 に答える 1

3

Javaには、すべての信頼できる証明書を含むデフォルトのトラストストアがあります。これは下%JRE_HOME%\lib\security\cacertにあり、すべての信頼できるCA証明書(Verisignなど)があります。
したがって、クライアントhttpsアプリケーションが、これらの発行者によって署名された証明書を展開するサーバーに接続しようとしても、問題は発生しません(ブラウザーの場合と同じです)。
今あなたの問題に。LDAPサーバーに関する十分な情報について言及していません。
私は次のことを考えることができます:

  1. LDAPサーバーは、一部のCA(既知のCAではない)によって署名された証明書を展開します。
  2. LDAPサーバーは自己署名証明書を展開します

ケース(1)の場合、必要なのは署名者の証明書をトラストストアに追加することだけです(つまり、LDAPサーバーの証明書に署名したissureの証明書)。LDAPサーバーが証明書を変更しても、現在信頼できるものとして設定したのと同じCAから証明書を取得していれば、影響はありません。この信頼できる証明書を追加することもできますcacertsが、推奨される解決策は、独自の個別のトラストストアを使用してインポートし、JVMに設定してデフォルトをオーバーライドすることですcacerts。Googleの例がたくさんあります。

LDAPケース(2)の場合、これは非常に悪い設定であり、サーバーが証明書を変更する たびにトラストストアを手動で更新する必要があるため、問題が発生します。

しかし、いずれにせよ、私は証明書が有効期限のために変更されると想定することしかできませんか?私は別の理由を考えることができません(秘密鍵の侵害を除いて、これはあなたの説明からここでの問題ではありません)

于 2012-09-19T19:49:46.960 に答える