如何在Jetty中进行CLIENT-CERT SSL重新协商?

Jua*_*ero 5 java ssl servlets jetty client-certificates

我有一个具有公共https区域的webapp,以及使用SSL重新协商的使用客户端证书保护的私有https.在具有APR的Tomcat 7中,此配置可正常工作(并非没有大量工作).

现在我正在和Jetty一起工作,但我已经尝试了所有东西,但我无法让它发挥作用.

客户端证书对话框从未出现在浏览器中,我总是收到HTTP 403错误.

我的环境是:jdk 1.7.0.02 jetty 9.0.0.M3从Eclipse Helios用m2e启动.(码头:运行)

服务器似乎已经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(jetty部分):http://pastebin.com/wBLATggq

我错过了一些明显的东西吗 我不知道.我经常搜索并尝试了很多可能的配置,但是没有运气.

rbe*_*ede 0

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

通过在 Jetty 中关闭 SSL 重新协商来解决此问题。如果使用 JVM > 1.6u19 setAllowRenegotiate(true) 可能会在连接器上调用

不过,您的服务器会受到 BEAST 攻击。