Per capire la natura dell’errore ERR_SSL_PROTOCOL_ERROR di Google Chrome è necessario innanzitutto fare riferimento al protocollo SSL (Secure Sockets Layer) e alla sua utilità in fase di navigazione.
Cos’è SSL?
Riassumendo quanto più possibile un argomento che meriterebbe una trattazione dedicata, si può affermare che si tratta di un protocollo di crittografia con cui è possibile navigare sui siti Web, e interagire con essi, sfruttando lo standard HTTPS (HyperText Transfer Protocol over Secure Socket Layer) che garantisce la cifratura delle comunicazioni e quindi l’impossibilità di accedere ad esse da parte di estranei, eventualmente interessati ad alterarle o a sottrarre dati personali altrui. Ciò è possibile tramite l’installazione a livello server di un certificato SSL rilasciato da un’apposita Certification Authority che ne garantisce la validità.
Errore quando visiti un "sito sicuro" su Google Chrome
Google Chrome è stato uno dei primi browser ad incoraggiare la navigazione su siti Internet protetti attraverso connessioni sicure sotto HTTPS, tanto che attualmente l’applicazione stessa (imitata dalle soluzioni della concorrenza) rende visibili di volta in volta delle notifiche nella barra degli URL con le quali è possibile capire se la sicurezza della pagina corrente è garantita da un certificato SSL valido.
Ma cosa accade se Chrome tenta di connettersi con un sito Web protetto da SSL tramite un URL su HTTPS e tale operazione non va a buon fine? Viene restituito l’errore ERR_SSL_PROTOCOL_ERROR e la conseguenza è che il sito a cui si sta cercando di accedere non può offrire una connessione protetta.
Si tratta di una situazione risolvibile? In alcuni casi sì ma perché ciò sia possibile è necessario comprendere prima l’origine del problema.
Cause lato server e lato client dell’errore ERR_SSL_PROTOCOL_ERROR
Come anticipato, il certificato SSL che supporta la navigazione via HTTPS viene installato lato server dal gestore di un sito Web o per lui da un amministratore di sistema. Tale certificato ha però un periodo di validità oltre in quale non offre alcuna garanzia e deve essere rinnovato. L’errore ERR_SSL_PROTOCOL_ERROR potrebbe essere quindi il risultato di un certificato scaduto e presentarsi soltanto temporaneamente nel periodo che separa la scadenza dal rinnovo, diversamente il titolare del sito Web o il suo sysadmin potrebbero non essere intenzionati a effettuare tale operazione costringendo il visitatore più prudente a ricercare risorse maggiormente affidabili.
In passato molto spesso i certificati non venivano rinnovati perché comportavano una spesa e le policy dei browser su HTTPS non erano restrittive come quelle odierne, oggi però buona parte dei provider hosting li offrono gratuitamente, se non anche per i sottodomini almeno per quello principale, e provvedono puntualmente al loro rinnovo. Ciò moltiplica le possibilità che l’ERR_SSL_PROTOCOL_ERROR abbia origine lato client.
Il meccanismo che consente il funzionamento dei certificati SSL è infatti bidirezionale e l’ERR_SSL_PROTOCOL_ERROR può essere causato anche dal fatto che il server non riesca a rilevare il certificato di autenticazione nel client.
Le ragioni di un evento di questo genere possono essere molteplici e per ognuna di esse è disponibile una soluzione generalmente efficace, analizziamo nel dettaglio quelle più frequenti tenendo conto che esistono anche altre procedure escluse da questa trattazione perché potenzialmente negative dal punto di vista della sicurezza, come per esempio disabilitare temporaneamente firewall e controlli antivirus.
Eliminazione della cache
Una prima causa dell’ERR_SSL_PROTOCOL_ERROR potrebbe essere correlata al contenuto della cachedi navigazione del browser o di quella relativa all’SSL. Nel primo caso in Chrome è sufficiente digitare l’URL:
chrome://settings/clearBrowserData
oppure seguire il percorso ““Personalizza e controlla Google Chrome (i 3 puntini disposti verticalmente in alto a destra) > Privacy e sicurezza > Cancella dati di navigazione”. In entrambi i casi da questa posizione è disponibile la scheda “Base” in cui è possibile selezionare l’opzione “Immagini e file memorizzati nella cache” che sono eliminabili cliccando su “Cancella Dati”.
La medesima opzione è accessibile anche dalla scheda successiva, “Avanzate”, e fornisce una stima della quantità di spazio che verrà liberata dopo l’operazione.
Se invece si desidera ripulire la cache SSL lo si deve fare direttamente dal sistema, su Windows 10 si può cliccare su “Impostazioni” e, tramite il modulo di ricerca, digitare “Opzioni Internet”. Si apre così una finestra di “Proprietà – Internet” nella quale selezionare la scheda “Contenuto”.
Nella sezione “Certificati” è presente il pulsante “Cancella stato SSL” cliccando il quale si riceve una conferma sul successo dell’operazione richiesta e si può riprovare a visitare il sito Web che ha prodotto l’ERR_SSL_PROTOCOL_ERROR per verificare che il problema sia stato risolto.
Verificare la correttezza di data e ora
Un altro problema che potrebbe dare origine all’ERR_SSL_PROTOCOL_ERROR è da ricercarsi nell’orologio di sistema del terminale utilizzato, infatti quando quest’ultimo riporta un’ora e/o una data sbagliate per il browser Web diventa molto difficile effettuare una verifica sulla validità di un certificato SSL.
Le applicazioni per la navigazione su Internet sfruttano l’orologio di sistema per determinare con esattezza data e ora, ma in assenza di una sincronizzazione che consenta di riportare correttamente tali dati ciò non è possibile, ecco perché l’ERR_SSL_PROTOCOL_ERROR si manifesta abbastanza spesso quando ad essere utilizzato è un laptop appena acquistato che accede per la prima volta ad una connessione Wi-Fi. Stesso discorso nei casi in cui si stia scaricando la batteria della scheda madre, problema che potrebbe alterate data e ora ad ogni nuova accensione.
Intervenire sull’orologio di sistema non è un’operazione particolarmente complessa, in Windows 10 è sufficiente cliccare con il tasto destro sull’ora e la data riportate e selezionare “Modifica data/ora”.
Fatto questo, se tale impostazione non è stata scelta in precedenza è possibile attivare l’opzione “Imposta data/ora automaticamente”. In alternativa si può cliccare su “Modifica” in corrispondenza della sezione “Imposta la data e l’ora manualmente”.
Una volta modificate data e ora si può effettuare un nuovo tentativo di accesso al sito Web che ha restituito l’ERR_SSL_PROTOCOL_ERROR per controllare che il suo caricamento avvenga in modo corretto.
Cancellazione o modifica del file hosts
Il file denominato hosts (privo di estensione) è una sorta di retaggio dell’Internet degli albori, inizialmente infatti non era ancora disponibile il sistema di risoluzione dei DNS (Domain Name System) che consente di accedere ad un sito Internet tramite la digitazione del nome a dominio ad esso associato; i resolver DNS non fanno altro che tradurre tale informazione in un indirizzo IP con il quale reperire la risorsa desiderata all’interno di un server. Oggi questa procedura avviene senza alcun intervento manuale da parte dell’utente ma un tempo nome a dominio e IP dovevano essere scritti in un file hosts perché il primo permettesse di accedere al secondo.
Il file hosts è comunque presente nei moderni sistemi operativi e può essere utile nei casi in cui non si riesca a risolvere un DNS, magari perché esso deve essere ancora evocato. In alcuni casi, come in certe infezioni da malware, può però succedere che il suo contenuto venga alterato e ciò potrebbe dare luogo all’ERR_SSL_PROTOCOL_ERROR.
Per eliminare o modificare il file hosts in Windows 10, operazioni consentite soltanto impersonando il ruolo di Amministratore, è possibile seguire il percorso “Windows > System32 > drivers > etc”:
Una volta terminato l’intervento si potrà rilevare l’eventuale risoluzione del problema che ha dato luogo all’ERR_SSL_PROTOCOL_ERROR.
Disattivazione delle estensioni di Chrome
Le estensioni di terze parti che permettono di integrare funzionalità aggiuntive in Chrome vengono regolarmente controllate dagli sviluppatori del browser ma questo non significa che non possano generare errori, magari in seguito ad un aggiornamento. Tra gli errori possibili vi è anche l’ERR_SSL_PROTOCOL_ERROR e, quando si verifica, una soluzione potrebbe essere quella di disattivare le estensioni e riattivarle una alla volta per capire quale potrebbe essere all’origine del problema.
Per far questo da “Personalizza e controlla Google Chrome” è possibile seguire il percorso “Altri strumenti > Estensioni”:
Fatto questo viene presentata una lista delle estensioni disponibili, tutte attivabili o disattivabili utilizzando l’apposito cursore a scorrimento posto in basso a destra in corrispondenza di ciascuna voce.
Se il numero delle estensioni installate è molto elevato, tale operazione potrebbe richiedere qualche minuto per essere completata, ma se la causa dell’ERR_SSL_PROTOCOL_ERROR è il malfunzionamento di una di esse alla fine della procedura si dovrebbe trovare la soluzione desiderata.
Disabilitare il protocollo QUIC
QUIC è un protocollo sperimentale basato su UDP (User Datagram Protocol) e nato nei laboratori di Google con l’obbiettivo di fornire un’alternativa alle connessioni TCP (Transmission Control Protocol), garantendo nel contempo un livello più basso di latenza. In sostanza QUIC comprime e altera il traffico su HTTP con lo scopo di velocizzare il caricamento delle pagine Web e di conseguenza la navigazione su Internet.
Trattandosi di un progetto ancora in fase di implementazione verso la versione definitiva, esso non è esente da instabilità e quindi potrebbe dar luogo ad errori come per esempio l’ERR_SSL_PROTOCOL_ERROR. Dato che QUIC è abilitato di default su Chrome è quindi possibile disabilitarlo per verificarne il ruolo nel manifestarsi di problematiche come quest’ultima.
Per far questo la via più breve è quella di digitare nella barra degli URL il flag:
chrome://flags/#enable-quic
Si apre così una schermata grazie alla quale selezionare l’opzione “Disabled” da un menu a tendina posto di fianco alla voce “Experimental QUIC protocol”.
Per confermare la modifica effettuata, e verificarne l’effetto sulla generazione dell’ERR_SSL_PROTOCOL_ERROR, è necessario riavviare il browser.