2013-01-18 5 views
5

Ich habe eine Webapp, die einen öffentlichen https-Bereich hat, und ein privates https mit Client-Zertifikat mit SSL-Neuverhandlung geschützt. Diese Konfiguration funktioniert einwandfrei (nicht ohne viel Arbeit) in Tomcat 7 mit APR.Wie kann ich CLIENT-CERT SSL Neuverhandlung in Jetty machen?

Jetzt arbeite ich mit Jetty und ich habe alles versucht, aber ich kann es nicht funktionieren lassen.

Der Client-Zertifikate-Dialog erscheint nie im Browser, und ich bekomme immer einen HTTP 403 Fehler.

Meine Umgebung ist: jdk 1.7.0.02 Anlegesteg 9.0.0.M3 von Eclipse Helios mit m2e gestartet. (Anlegesteg: Lauf)

Der Server scheint SSL-Neuverhandlung aktiviert zu haben, testet es wie angegeben here, so bin ich mir ziemlich sicher, dass es keine Probleme mit der SSL-Neuverhandlung Sicherheitsprobleme gibt.

Ich habe ClientCertAuthenticator übergangen (um debuggen zu können) und einen benutzerdefinierten LoginService erstellt, und es sieht so aus, als ob der X509Cert nie in der Anfrage erscheint.

Sieht so aus, als ob die SSL-Neuverhandlung nie ausgelöst wird und die Authentifizierung fehlschlägt, da in der Anforderung kein Zertifikat vorhanden ist.

Der konfigurierte LoginService gibt für jede Validierung true zurück. Ich kann sie auch posten, wenn man sie fragt, aber die wichtigen Methoden werden nie aufgerufen.

Wenn ich braucheClientCert oder wantClientCert Anwendung funktioniert ok, aber dann fragt Browser für das Zertifikat im öffentlichen Bereich.

Meine Konfigurationsdateien:

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

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

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

pom.xml (Anlegestelle Teil): http://pastebin.com/wBLATggq

Fehle ich etwas offensichtlich? Ich weiß es nicht. Ich habe viel gesucht und viele mögliche Konfigurationen ausprobiert, aber kein Glück.

Antwort