2012-05-07 17 views
12

Ho un sito Web che utilizza l'autenticazione del certificato ssl. Come forzare il browser Web dal server a chiedere nuovamente il certificato da utilizzare? Potrebbe essere utilizzabile per il logout, ma il caso d'uso qui sta cambiando l'identità dell'utente.https certificato del client logout/relogin

mi ricordo qualcosa di dirigere l'utente a una pagina che hanno Impostazioni SSL incompatibili con il certificato di autenticazione corrente, ma non riusciva a trovare le giuste regolazioni.

La mia configurazione utilizza apache mod-ssl, ma sarebbe anche una soluzione IIS.

Aggiornamento: Sto chiedendo specificamente al server: come impostare un URL sullo stesso hostname che richiede i certificati client ma rifiuta tutti i certificati.

Per Firefox, javascript:window.crypto.logout(); funziona con inconvenienti minori dell'utente (che credo possa essere copiato in giro).

+0

Il modo più semplice sarebbe solo quello di riavviare il browser. – Robert

risposta

6

Questo è piuttosto difficile in generale (e sicuramente uno dei motivi per cui l'utilizzo del certificato client può essere noioso per la maggior parte degli utenti).

Dal lato client, ci sono alcune tecniche di JavaScript, ma non sono supportati su tutta la linea (vedi this question).

Utilizzando Apache Tomcat 7, è possibile invalidare la sessione SSL/TLS utilizzando un attributo di richiesta, come descritto in this question.

Io non sono a conoscenza di alcun gancio che avrebbe permesso di fare questo con Apache Httpd (e mod_ssl). I meccanismi utilizzabili dietro Apache Httpd (ad esempio mod_php, CGI, FCGI, ...) generalmente non riescono a modificare le impostazioni o le variabili di ambiente impostate da mod_ssl, che sarebbero necessarie per invalidare la sessione.

Su IIS, this question non ha ancora ricevuto risposta.

Il modo generale, dal punto di vista del browser, è di andare nelle sue impostazioni e cancellare lo stato SSL (questo varia a seconda del browser, ma di solito richiede almeno un paio di finestre di dialogo, non solo un pulsante rapido , almeno non senza un plugin).

+0

Esiste un tale plugin per Firefox? –

+0

Ho trovato [ClearSslCache] (https://addons.mozilla.org/en-US/firefox/addon/clearsslcache) che sembra fare lo stesso di Cancella tutte le cronologie/accessi attivi, con un clic in meno (un clic sul nuovo pulsante della barra degli strumenti, quindi uno per confermare la finestra di dialogo (in spagnolo) "Sei sicuro?") –

1

Da un browser Web lato client è possibile eseguire questa operazione per MSIE (Internet Explorer): lo stato di Clear SSL andando su Strumenti> Opzioni Internet> Contenuto (scheda)> Cancella stato SSL.

in Firefox (prima della versione 20) si può fare: Strumenti | Inizia la navigazione privata.

Quindi visitare la pagina in questione. Oppure fai "Strumenti | interrompi la navigazione privata" e poi ...

Quindi, quando ricarichi una pagina su cui ti trovi, ti verrà richiesto di presentare un nuovo certificato client (se ne hai più di uno dalla CA che il tuo server si fida). In caso contrario, se si dispone di un solo certificato, verrà utilizzato l'unico e un solo certificato client PKI presente nel negozio.

0

Per il logout leggere questo post: https://security.stackexchange.com/questions/36853/is-it-possible-to-force-a-new-ssl-session#

Sul lato client, sessioni SSL sono normalmente tenuti in RAM.Internet Explorer, ad esempio, internamente consiste di diversi processi che parlano tra loro e devi ucciderli tutti per far dimenticare una sessione SSL (in pratica, ciò accade solo quando hai chiuso tutte le finestre di IE).

Un'alternativa può essere chiusa browser con javascript.

Problemi correlati