2013-01-18 13 views
5

Mam aplikację internetową, która ma publiczny obszar https i prywatny https chroniony certyfikatem klienta przy użyciu renegocjacji SSL. Ta konfiguracja działa poprawnie (nie bez dużego nakładu pracy) w Tomcat 7 z APR.Jak mogę wykonać pracę renegocjacyjną CLIENT-CERT SSL na pomoście?

Teraz pracuję z Jetty i próbowałem wszystkiego, ale nie mogę sprawić, żeby działało.

Okno dialogowe certyfikatów klienta nigdy nie pojawia się w przeglądarce i zawsze pojawia się błąd HTTP 403.

Moje środowisko to: jdk 1.7.0.02 pomost 9.0.0.M3 uruchomiony z Eclipse Helios z m2e. (pomost: bieg)

Serwer wydaje się mieć włączone renegocjacje SSL, testując go zgodnie ze wskazaniem here, więc jestem pewien, że nie ma problemów z problemami związanymi z Renegocjacją SSL.

Nadpisałem ClientCertAuthenticator (aby móc debugować) i utworzyłem niestandardową usługę LoginService i wygląda na to, że X509Cert nigdy nie pojawia się w żądaniu.

Wygląda na to, że renegocjacja protokołu SSL nigdy nie jest wyzwalana, a uwierzytelnianie nie powiedzie się, ponieważ w żądaniu nie ma certyfikatu.

Usługa LoginService po prostu zwraca wartość true do każdej weryfikacji. Mogę też je opublikować, jeśli zostaną o to poproszone, ale ważne metody nigdy nie zostaną wywołane.

Jeśli używam needCLientCert lub chcę, że aplikacjaClientCert działa poprawnie, ale wtedy przeglądarka prosi o certyfikat w obszarze publicznym.

Moje pliki konfiguracyjne:

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

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

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

pom.xml (część pomost): http://pastebin.com/wBLATggq

Czy brakuje mi czegoś oczywistego? Nie wiem Wiele szukałem i próbowałem wielu możliwych konfiguracji, ale bez powodzenia.

Odpowiedz

Powiązane problemy