Certificato SSL su WordPress: Installazione, configurazione e problemi comuni

Certificato SSL su sito WordPress

Il certificato SSL è il prerequisito minimo per qualsiasi sito WordPress nel 2026 — senza, i browser mostrano “Non sicuro” e Google penalizza il ranking. Installarlo è una procedura standard che quasi ogni hosting moderno rende disponibile in pochi passaggi. Configurarlo correttamente, in modo che WordPress funzioni senza errori su HTTPS, richiede qualche passaggio in più che spesso viene saltato.

Questa guida copre tutto nell’ordine giusto: attivazione del certificato, configurazione di WordPress, redirect HTTPS, risoluzione del mixed content, e i problemi più comuni che emergono dopo — loop di redirect, lucchetto mancante, certificato in scadenza. Include anche un aggiornamento sulle nuove durate dei certificati SSL che entreranno in vigore tra il 2026 e il 2029.

In sintesi: attiva Let’s Encrypt dal pannello hosting → aggiorna gli URL WordPress in Impostazioni → Generali → aggiungi il redirect 301 in .htaccess → risolvi il mixed content con Really Simple SSL o Better Search Replace → verifica il lucchetto in Chrome DevTools. Se trovi loop di redirect, il problema è quasi sempre WordPress dietro CDN senza la variabile HTTPS configurata in wp-config(.)php.

SSL, TLS, HTTPS: cosa significano davvero questi termini

Tecnicamente sono tre cose diverse, anche se ormai si usano come sinonimi. Vale la pena chiarirlo una volta sola. SSL (Secure Sockets Layer) è il protocollo originale, ormai deprecato e sostituito da anni. TLS (Transport Layer Security) è la versione moderna e sicura — quello che installi oggi è tecnicamente un certificato TLS, anche se tutti lo chiamano ancora SSL per abitudine. HTTPS è semplicemente HTTP trasmesso attraverso una connessione TLS: è il risultato visibile nel browser, non il certificato stesso.

Quello che conta per WordPress è questo: il certificato crittografa la comunicazione tra il server e il browser del visitatore. Senza di esso, tutto ciò che transita — password, dati di contatto, informazioni di pagamento — viaggia in chiaro. Senza, Chrome e gli altri browser mostrano l’avviso “Non sicuro” accanto all’URL — un segnale che allontana i visitatori e penalizza il ranking.

Let’s Encrypt: il certificato gratuito che va bene per quasi tutti

Let’s Encrypt è un’autorità di certificazione no-profit che emette certificati SSL gratuiti, automatici e rinnovabili. È supportata da Google, Mozilla, Cisco e la maggior parte dei provider hosting. Quasi tutti gli hosting WordPress la includono di default nel pannello di controllo.

La domanda più comune è: i certificati gratuiti sono sicuri quanto quelli a pagamento? Dal punto di vista crittografico, sì — usano la stessa tecnologia. La differenza con i certificati a pagamento (come quelli EV, Extended Validation) è nel livello di verifica dell’identità: i certificati EV richiedono la verifica dell’esistenza legale dell’azienda e mostravano la barra verde nel browser, ma i browser moderni hanno rimosso quella visualizzazione. Per il 99% dei siti WordPress, Let’s Encrypt è la scelta corretta.

Come installare SSL su WordPress: la procedura standard

Quattro passaggi, in quest’ordine. Saltarne uno o invertirli è la causa di quasi tutti i problemi SSL che vedo sui siti WordPress.

Passo 1 — Attiva il certificato dal pannello hosting

Accedi al pannello del tuo hosting (cPanel, Plesk, o il pannello proprietario del provider) e cerca la sezione SSL/TLS o Certificati. Seleziona Let’s Encrypt, scegli il dominio e il sottodominio www se presente, e attiva.

Il certificato deve coprire sia il dominio con www che senza (es. tuosito.it e www.tuosito.it). Se ne generi uno solo, il browser mostrerà un errore di corrispondenza del nome per la versione non coperta.

Passo 2 — Aggiorna gli URL in WordPress

Con il certificato attivo, vai in WordPress → Impostazioni → Generali e aggiorna sia Indirizzo WordPress (URL) che Indirizzo del sito (URL) da http:// a https://. Salva — WordPress potrebbe chiederti di accedere nuovamente.

Questo aggiorna le impostazioni principali, ma non sostituisce i riferimenti HTTP presenti nel database — nelle pagine, negli articoli, nei meta delle immagini. Per quello serve il passo 4.

Passo 3 — Forza HTTPS con il redirect in .htaccess

Per reindirizzare automaticamente tutto il traffico HTTP verso HTTPS, aggiungi questo blocco di codice all’inizio del file .htaccess nella root del sito, prima del blocco generato da WordPress:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Questo redirect 301 dice a Google che il passaggio ad HTTPS è permanente — fondamentale per trasferire correttamente l’autorità SEO dalle URL http a quelle https. Senza il 301, Google potrebbe continuare a indicizzare entrambe le versioni per settimane.

Passo 4 — Risolvi il mixed content

Il mixed content è il problema più comune dopo l’attivazione di SSL: il certificato è installato, il redirect funziona, ma il lucchetto non appare — o appare con un triangolo giallo. Significa che alcune risorse della pagina vengono ancora caricate via HTTP.

Il modo più rapido per identificare le risorse problematiche è aprire Chrome DevTools (F12) → Console e cercare avvisi del tipo “Mixed Content”. In alternativa, lo strumento online whynopadlock.com scansiona una URL e lista tutte le risorse non sicure.

Per risolvere, il plugin Really Simple SSL gestisce automaticamente la maggior parte dei casi — aggiorna gli URL nel database e intercetta le risorse HTTP al volo. Per un controllo più preciso, usa Better Search Replace per sostituire http://tuodominio.it con https://tuodominio.it nel database. Fai sempre un backup prima.

I problemi SSL più comuni su WordPress e come risolverli

Il lucchetto non appare nonostante il certificato installato

Nella maggior parte dei casi è mixed content — lo stesso problema del Passo 4. Se hai già risolto quello e il lucchetto non appare ancora, controlla che gli URL in Impostazioni → Generali siano effettivamente in HTTPS e che il redirect .htaccess sia attivo. Svuota la cache del browser e della CDN prima di verificare — stai vedendo la versione cached, non quella live.

Errore NET::ERR_CERT_AUTHORITY_INVALID

Questo errore appare quando il browser non riconosce l’autorità che ha emesso il certificato. Può succedere con certificati autofirmati (tipici degli ambienti di sviluppo locale) o con certificati emessi da CA non incluse nei browser. Con Let’s Encrypt non dovrebbe verificarsi — se appare, il certificato potrebbe non essere stato installato correttamente o potrebbe essere scaduto.

Certificato scaduto

Let’s Encrypt emette certificati con validità di 90 giorni e li rinnova automaticamente tramite il protocollo ACME — normalmente non devi fare nulla. Se il certificato scade, significa che il rinnovo automatico ha fallito: controlla che il cron job dell’hosting sia attivo e che il dominio punti ancora al server corretto.

Loop di redirect HTTP/HTTPS

Il browser entra in un ciclo di redirect infiniti tra HTTP e HTTPS. Succede quasi sempre quando WordPress è dietro un reverse proxy o CDN (come Cloudflare) che termina SSL prima del server: WordPress non sa di essere su HTTPS e genera redirect infiniti. La soluzione è aggiungere in wp-config(.)php, prima della riga require_once ABSPATH . ‘wp-settings.php’;:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
	$_SERVER['HTTPS'] = 'on';
}

Se il loop persiste, potrebbe essere causato da un redirect errato in .htaccess combinato con uno nell’hosting. Un’altra causa comune sono i redirect indesiderati dopo un attacco — in quel caso la causa è diversa e richiede un’analisi separata.

Mixed content: il lucchetto con il triangolo giallo

Il mixed content si divide in due categorie. Il mixed content attivo — script JavaScript e CSS caricati via HTTP — viene bloccato automaticamente dai browser moderni: la pagina potrebbe rompersi visivamente o funzionalmente. Il mixed content passivo — immagini e media via HTTP — viene mostrato con un avviso nel lucchetto ma non bloccato. Chrome aggiorna automaticamente le immagini a HTTPS quando possibile, ma non sempre ci riesce.

Le fonti di mixed content più comuni che i plugin non riescono a correggere automaticamente sono: video YouTube o Vimeo incorporati con URL http:// (sostituire con https://), risorse hardcoded nei file del tema o dei plugin, e Google Maps incorporato con URL http://.

HSTS: il passo successivo dopo SSL

L’HTTP Strict Transport Security (HSTS) è un header di sicurezza che dice al browser di connettersi sempre e solo via HTTPS a quel dominio, anche se qualcuno digita http:// nella barra degli indirizzi. Una volta ricevuto l’header HSTS, il browser non passa nemmeno dal redirect — va direttamente a HTTPS. Questo elimina una piccola ma reale finestra di vulnerabilità che esiste nei redirect normali.

Per attivare HSTS su WordPress aggiungi questo header al file .htaccess, dopo il blocco del redirect HTTPS:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Prima di attivare HSTS

Assicurati che SSL funzioni perfettamente su tutti i sottodomini. Una volta inviato l’header HSTS, il browser rifiuterà qualsiasi connessione HTTP a quel dominio per tutta la durata del max-age (un anno con il valore sopra). Se SSL smette di funzionare durante quel periodo, il sito diventa irraggiungibile.

Cosa sta cambiando nel 2025–2029: la durata dei certificati si accorcia

Nel 2025 il CA/Browser Forum — l’organismo che regola gli standard dei certificati SSL — ha approvato una riduzione progressiva della durata massima dei certificati TLS. Il cambiamento riguarda direttamente chi gestisce siti WordPress con certificati a pagamento rinnovati manualmente:

  • Dal 15 marzo 2026: durata massima ridotta a 200 giorni (da 398 attuali)
  • Dal 15 marzo 2027: durata massima ridotta a 100 giorni
  • Dal 15 marzo 2029: durata massima ridotta a 47 giorni

Per chi usa Let’s Encrypt con rinnovo automatico configurato correttamente, questo cambiamento è trasparente — il sistema rinnova già ogni 60-90 giorni. Il problema riguarda chi usa certificati a pagamento con rinnovo manuale: con 47 giorni di validità, il rinnovo manuale diventa praticamente impossibile da gestire senza automazione.

Hai bisogno di aiuto con SSL su WordPress?

Loop di redirect che non si risolvono, certificati che scadono nonostante il rinnovo automatico, mixed content che persiste dopo tutti i tentativi: sono situazioni in cui la causa è quasi sempre una configurazione specifica del server o dell’hosting che richiede accesso diretto.

Per configurazioni SSL complesse, siti dietro CDN o proxy, o semplicemente per avere la certezza che tutto sia configurato correttamente, contattami: lavoro in modo diretto e risolvo il problema nel minor tempo possibile.

Tecnico WordPress

In sintesi

SSL su WordPress non è difficile — ma ha un ordine preciso da rispettare. Attivi il certificato, aggiorni gli URL nelle impostazioni, forzi il redirect 301 in .htaccess, risolvi il mixed content. Saltare anche uno solo di questi passaggi produce il 90% dei problemi che le persone si trovano a dover risolvere dopo.

Il mixed content è il problema più sottovalutato. Il certificato è installato, il redirect funziona, ma il lucchetto non appare — perché alcune risorse della pagina vengono ancora caricate via HTTP. Chrome DevTools (F12 → Console) è il modo più rapido per identificarle. Really Simple SSL risolve la maggior parte dei casi in automatico.

Sul loop di redirect: quasi sempre succede quando WordPress è dietro Cloudflare o un altro reverse proxy. Il proxy termina SSL prima del server, WordPress non lo sa, genera un redirect verso HTTPS che il proxy intercetta e rimanda ad HTTP, e così via all’infinito. La variabile HTTP_X_FORWARDED_PROTO in wp-config(.)php risolve il problema in tre righe.

Una cosa che in pochi sanno ancora: dal 2026 i certificati SSL avranno durata massima di 200 giorni, scendendo a 47 giorni entro il 2029 — decisione del CA/Browser Forum approvata ad aprile 2025. Per chi usa Let’s Encrypt con rinnovo automatico non cambia nulla. Per chi rinnova manualmente i certificati a pagamento, è il momento di configurare l’automazione.

Domande frequenti (FAQ)

Con TLS 1.3 e HTTP/2 — supportati da tutti i moderni hosting WordPress — l’impatto sulle prestazioni è trascurabile e in alcuni casi SSL migliora addirittura le performance perché abilita HTTP/2, che carica le risorse in parallelo invece che in sequenza. Se noti un rallentamento dopo l’attivazione di SSL, la causa è quasi sempre la CDN o la configurazione del server, non il certificato in sé.

No, per la grande maggioranza dei casi. Let’s Encrypt offre certificati gratuiti accettati da tutti i browser moderni, con rinnovo automatico ogni 90 giorni. I certificati a pagamento (EV, OV) aggiungono livelli di verifica dell’identità aziendale, ma i browser moderni non mostrano più la barra verde distintiva che li rendeva visivamente differenti. Per siti personali, aziende, e-commerce: Let’s Encrypt è più che sufficiente.

I browser mostrano un avviso “La tua connessione non è privata” che blocca l’accesso al sito per la maggior parte dei visitatori. Google abbassa il ranking delle pagine con certificati scaduti. Con Let’s Encrypt il rinnovo è automatico — se il certificato scade è perché il rinnovo automatico ha fallito, quasi sempre per un problema di DNS o di configurazione del cron job dell’hosting.

Sì, in due modi. Dal 2014 HTTPS è un segnale di ranking diretto, anche se con peso limitato. Più rilevante è l’effetto comportamentale: i browser mostrano “Non sicuro” sui siti HTTP, il che aumenta la frequenza di rimbalzo — e Google usa i segnali comportamentali per valutare la qualità delle pagine. Un sito HTTP nel 2026 perde visitatori prima ancora che Google lo penalizzi direttamente.

Really Simple SSL è sufficiente per la grande maggioranza dei siti standard. Gestisce il redirect HTTPS, aggiorna gli URL nel database e risolve il mixed content comune. I casi in cui serve configurazione manuale sono: siti dietro CDN o proxy (dove il loop di redirect richiede la modifica di wp-config(.)php), siti con risorse hardcoded nei file di tema, e installazioni multisite.