5

パブリック https エリアと、SSL 再ネゴシエーションを使用してクライアント証明書で保護されたプライベート https を持つ webapp があります。この構成は、APR を使用する Tomcat 7 で正しく機能します (多くの作業が必要です)。

今、私は Jetty で作業しており、すべてを試しましたが、うまくいきません。

クライアント証明書のダイアログがブラウザーに表示されず、常に HTTP 403 エラーが発生します。

私の環境は次のとおりです。 jdk 1.7.0.02 jetty 9.0.0.M3 m2eでEclipse Heliosから起動しました。(突堤:走る)

サーバーでは SSL 再ネゴシエーションが有効になっているようで、ここに示されているようにテストしています。したがって、SSL 再ネゴシエーション セキュリティの問題に問題はないと確信しています。

ClientCertAuthenticator をオーバーライドして (デバッグできるようにするため)、カスタム LoginService を作成しましたが、X509Cert がリクエストに表示されないようです。

要求に証明書がないため、SSL 再ネゴシエーションがトリガーされず、認証が失敗したようです。

構成された LoginService は、すべての検証に対して単純に true を返します。求められれば投稿することもできますが、重要なメソッドが呼び出されることはありません。

needCLientCert または wantClientCert アプリケーションを使用すると問題なく動作しますが、ブラウザは公開領域で証明書を要求します。

私の設定ファイル:

web.xml: http://pastebin.com/LQ3RcWY4

jetty.xml: http://pastebin.com/iE9xqcLq

jetty-context.xml: http://pastebin.com/rcSsBfRW

pom.xml (桟橋部分): http://pastebin.com/wBLATggq

明らかな何かが欠けていますか?知らない。私はたくさん検索し、多くの可能な構成を試しましたが、うまくいきません。

4

1 に答える 1

0

http://docs.codehaus.org/display/JETTY/Jetty+Security

Jetty で SSL 再ネゴシエーションをオフにすることで回避します。JVM > 1.6u19 を使用している場合、コネクタで setAllowRenegotiate(true) を呼び出すことができます

ただし、サーバーを BEAST 攻撃にさらします。

于 2013-03-07T16:23:26.977 に答える