Ho una webapp con un'area https pubblica e un https privato protetto con certificato client utilizzando la rinegoziazione SSL. Questa configurazione funziona correttamente (non senza molto lavoro) in Tomcat 7 con APR.Come posso far funzionare la rinegoziazione di CLIENT-CERT SSL in Jetty?
Ora sto lavorando con Jetty e ho provato tutto ma non riesco a farlo funzionare.
La finestra di dialogo dei certificati client non viene mai visualizzata nel browser e ottengo sempre un errore HTTP 403.
Il mio ambiente è: jdk 1.7.0.02 molo 9.0.0.M3 lanciato da Eclipse Helios con m2e. (jetty: run)
Sembra che il server abbia abilitato la rinegoziazione SSL, testandolo come indicato in here, quindi sono abbastanza sicuro che non ci siano problemi con i problemi di sicurezza rinegoziazione SSL.
Ho eseguito l'override di ClientCertAuthenticator (per eseguire il debug) e ho creato un LoginService personalizzato, e sembra che X509Cert non venga mai visualizzato nella richiesta.
Sembra che la rinegoziazione SSL non venga mai attivata e l'autenticazione non riesce, perché nella richiesta non è presente un certificato.
LoginService configurato restituisce semplicemente true ad ogni convalida. Posso anche postarli, se richiesto, ma i metodi importanti non vengono mai chiamati.
Se utilizzo needCLientCert o wantClientCert, l'applicazione funziona correttamente, ma il browser richiede il certificato nell'area pubblica.
I miei file di configurazione:
web.xml: http://pastebin.com/LQ3RcWY4
jetty.xml: http://pastebin.com/iE9xqcLq
molo-context.xml: http://pastebin.com/rcSsBfRW
pom.xml (parte pontile): http://pastebin.com/wBLATggq
Mi manca qualcosa di ovvio? Non lo so. Ho cercato molto e provato molte configurazioni possibili, ma, senza fortuna.