Grazie delle risposte.
Dunque vi spiego meglio il problema che ho.
Devo gestire un logout pulito in un sistema formato da:
- Server A: un server che gira sotto Apache Web Server in cui è stata definita una Location che effettua un ProxyForward verso un altro server (Server B) che non è accessibile dalla rete pubblica ma è visibile al Server A.
- Server B: server che gira sotto Apache Web Server in cui, nella cartella htdocs, ci sono pagine html e php dell'applicazione.
Il sistema prevede un'autenticazione con certificato client che viene gestita sul server A che poi effettua il forward in http sul Server B.
Ora quello che io sto cercando di fare è quello di realizzare un logout pulito che mi permetta di ripresentare la scelta del certificato e il PIN senza dover chiudere e riaprire il browser.
Il sistema deve girare sul browser IE (e per ora solo su quello) e ho visto che per farlo funzionare una prima strada potrebbe essere quello di emulare programmaticamente il comportamento del bottone Clear SSL state del browser.
Per fare questo, ho provato inserendo nelle pagine html residenti sul server B la funzione javascript document.execCommand("ClearAuthenticationCache") ma questo non mi sta funzionando, il sistema prevede l'utilizzo di un lettore NFC e quando chiamo la funzione di cui sopra, la volta successiva che provo ad autenticarmi (tenendo lo stesso browser) da una pagina d'errore (sniffando abbiamo visto che il lettore non fa attività) mentre se eseguo la clear SSL state dal browser funziona quindi immagino che chiamando la execCommand creo qualche "squilibrio"che manda il tutto in tilt.
Alcuni colleghi mi hanno consigliato di indagare sulla funzione SSL_shutdown e così ho fatto.
L'idea del CGI è buona però ho visto che alla funzione devi passare un parametro di tipo SSL* che, immagino, contiene il puntatore della sessione creato con analoghe funzioni come in questo esempio
http://publib.boulder.ibm.com/infoce...2Fs5sple1.html
Il fatto è che nel mio caso non creo un server utilizzando le funzioni C quindi non so se funziona il fatto di implentare un cgi che semplicemente richiama la SSL_shutdown passando null come parametro.
Nel caso il cgi dovrebbe essere sul server A o sul server B? In teoria sul server A, che è quello in cui gestisco la connessione SSL, è corretto?
Effettivamente potrei provare a chiamare la clearauthenticationcache su una pagina web sul server A invece che sul server B.
(p.s: l'architettura con i due server non dipende da me, così è e su questa devo operare senza possibilità di ristrutturarla in un'architettura monoserver)
Grazie ancora
Sandro