パブリック 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
明らかな何かが欠けていますか?知らない。私はたくさん検索し、多くの可能な構成を試しましたが、うまくいきません。