Suggerirei di utilizzare un cosiddetto proxy di intercettazione SSL.
Per consentire all'utente di installare il certificato CA Root, è possibile utilizzare un captive portal per forzare l'utente finale a installare CA Root per ottenere l'accesso a Internet.
Ecco come si fa:
prima, hai una pagina del portale. Questa pagina del portale deve utilizzare un certificato VALID. Questa pagina portale, chiamiamola captive.yourdomain.tld, ha un certificato valido emesso da una CA valida già in trust.
In questa pagina del portale hai istruzioni su come scaricare il certificato CA .cer e su come importarlo nel browser.
Ora, da captive.yourdomain.tld, imposti HSTS con subDomains attivati.
Quindi, hai un iframe 1x1, da cui viene caricato, diciamo validate.captive.yourdomain.tld. Questo validate.captive.yourdomain.tld utilizza un certificato del server firmato dal certificato di intercettazione del proxy CA.
Anche questa pagina validate.captive.yourdomain.tld ha un modulo che invia automaticamente (utilizzando un javascript) credenziali valide per accedere alla rete WLAN. La migliore opzione qui è usare i codici TOTP o qualcosa del genere, per impedire alle persone di aggirarlo.
Se vuoi, potresti avere una pagina dei termini di servizio, ma il pulsante "I Agree" si trova all'interno di detto modulo TOTP dietro Iframe (invece di un invio automatico di JavaScript, quindi l'iframe deve essere leggermente più grande). Se l'utente non ha installato la CA principale, il pulsante "Accetto" non verrà caricato e l'utente non sarà in grado di accettare i termini.
Il risultato è un captive portal, che richiede l'installazione di un certificato radice CA nel browser per ottenere l'accesso a Internet. Poiché la pagina viene sottoposta a boot con un vero certificato, all'utente verrà impedito l'accesso (da parte dell'HSTS nessuna pagina di blocco di ricorso dell'utilizzatore) se validate.captive.yourdomain.tld non riesce a convalidare, quale sarebbe se non fosse stata importata la root CA.
L'utente non ha bisogno di autenticarsi sul captive portal, accade automaticamente purché tu abbia importato la root CA.
Ecco un video come appare:
link
(Ma può essere implementato su qualsiasi dispositivo captive portal che consente di caricare una pagina di autenticazione personalizzata)
Quindi, quando hai fatto questo, puoi utilizzare qualsiasi proxy intermedio con questo proxy di intercettazione SSL per filtrare il contenuto per parole chiave, URL o qualsiasi cosa tu ritenga opportuno.