HTTPS/SSL e sicurezza del sito
Che cos'è HTTPS/SSL?
HTTPS (HTTP Secure) è un protocollo che crittografa lo scambio di dati tra un sito web e il browser del visitatore. Questa crittografia è garantita da un certificato SSL/TLS posseduto dal sito; il certificato funziona come un documento digitale che conferma al browser l'identità del sito. L'icona del lucchetto nella barra degli indirizzi del browser indica che la connessione è crittografata e che il certificato è valido.
I dati inviati tramite HTTP vengono trasmessi in chiaro (plaintext); ciò significa che una terza persona sulla stessa rete (ad es. una rete Wi-Fi pubblica) potrebbe leggerli. HTTPS crittografa questi dati, rendendoli leggibili solo dal mittente e dal destinatario.
I certificati SSL sono generalmente validi per un determinato periodo (ad esempio un anno) e devono essere rinnovati alla scadenza; oggi molti provider di hosting automatizzano questo processo, garantendo il rinnovo automatico del certificato e riducendo così la necessità di un monitoraggio manuale.
Perché è importante?
L’HTTPS garantisce la protezione dei dati degli utenti (dati inseriti nei moduli, informazioni di sessione, dati di pagamento) dagli attacchi di tipo «man-in-the-middle». Google considera l’uso di HTTPS un leggero fattore di ranking e i browser mostrano l’avviso “Non sicuro” per i siti HTTP; ciò influisce direttamente sulla fiducia degli utenti.
Un sito non sicuro riduce la propensione dei visitatori a rimanere sul sito; in particolare, gli utenti che compilano moduli o effettuano pagamenti potrebbero abbandonare il sito senza completare la transazione quando vedono l’avviso “Non sicuro”. Si tratta quindi di un problema di fiducia che incide direttamente sul tasso di conversione.
Inoltre, la maggior parte delle funzionalità dei browser moderni (ad es. servizi di localizzazione, notifiche, alcune API di pagamento) funziona solo tramite HTTPS; un sito che rimane su HTTP non può avvalersi affatto di queste funzionalità e diventa sempre più limitato dal punto di vista tecnico.
Come risolvere il problema?
- Installate un certificato SSL valido sul vostro sito e assicuratevi che venga rinnovato automaticamente per evitare che scada.
- Reindirizzate tutte le richieste HTTP alla versione HTTPS tramite un reindirizzamento 301.
- Elimina gli avvisi di «contenuto misto» (mixed content): assicurati che tutte le immagini, gli script e i file CSS presenti nella pagina vengano caricati tramite HTTPS; in caso contrario, il browser potrebbe contrassegnare la pagina come «parzialmente sicura».
- Se possibile, aggiungete l’intestazione HSTS (HTTP Strict Transport Security) per obbligare il browser a connettersi al sito sempre tramite HTTPS.
- Riducete le catene di reindirizzamento (come HTTP → HTTPS → www → non-www, ovvero più reindirizzamenti consecutivi) a un unico passaggio; ogni reindirizzamento aggiuntivo comporta un leggero ritardo nel tempo di caricamento della pagina.
- Verificate che anche le risorse fornite da servizi di terze parti (come CDN per immagini, provider di moduli, widget di chat) siano servite tramite HTTPS; queste sono spesso la causa trascurata del problema dei contenuti misti.
Esempio
# esempio .htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Esempio negativo: dopo il passaggio a HTTPS, dimenticare di aggiornare i collegamenti HTTP assoluti <img src="http://example.com/logo.png"> come quelle HTTP assolute presenti nella pagina; ciò provoca un avviso di contenuto misto nel browser, anche se la pagina sembra complessivamente sicura.
Errori comuni
- Lasciare attiva la versione HTTP senza disattivarla; in questo modo il sito rimane accessibile sia tramite HTTP che HTTPS e il contenuto risulta duplicato su due indirizzi diversi.
- Lasciare nella pagina immagini o script caricati tramite HTTP pur essendo sotto HTTPS (contenuto misto).
- Lasciare scadere il certificato SSL; in questo caso il browser potrebbe indicare che il sito è completamente inaccessibile.
- Creare catene di reindirizzamenti inutili composte da più passaggi.
- Acquistare il certificato solo per il dominio principale, escludendo i sottodomini (ad es. blog.example.com).
- Continuare a utilizzare i vecchi indirizzi HTTP nei collegamenti interni (menu, piè di pagina, link interni); ciò innesca un reindirizzamento 301 superfluo ad ogni clic e rallenta leggermente il caricamento della pagina.
- Continuare a fare riferimento ai vecchi indirizzi HTTP nella Sitemap e nei tag canonical; ciò invia segnali contraddittori al motore di ricerca.
- Trasferire per errore il certificato autofirmato (self-signed) utilizzato nell’ambiente di sviluppo locale (localhost) alla configurazione dell’ambiente di produzione; i browser non considerano affidabili questo tipo di certificati.
- Il rapporto di Seoraporu.co segnala in via prioritaria la mancanza di HTTPS o gli avvisi di contenuto misto nella sezione dei risultati tecnici, poiché questi aspetti influenzano contemporaneamente sia la fiducia che le prestazioni.