Menu
Hosting Wordpress

Come configurare un certificato SSL gratuito su WordPress con Let’s Encrypt

Gianluca Gentile · · 5 min di lettura

Come configurare un certificato SSL gratuito su WordPress con Let’s Encrypt

Il certificato SSL è indispensabile per qualsiasi sito WordPress: protegge i dati trasmessi tra il browser e il server, migliora il posizionamento su Google e mostra il lucchetto verde nella barra degli indirizzi. Senza SSL, i browser moderni mostrano l’avviso “Non sicuro” che allontana i visitatori. Let’s Encrypt offre certificati SSL gratuiti e automatizzati. In questa guida ti spiego come installarlo e configurarlo su WordPress.

Cos’è Let’s Encrypt e perché è gratuito

Let’s Encrypt è un’autorità di certificazione (CA) no-profit sostenuta da organizzazioni come Mozilla, Google e la Electronic Frontier Foundation. Rilascia certificati SSL Domain Validation (DV) completamente gratuiti con validità di 90 giorni e rinnovo automatico. Dal 2015 ha rivoluzionato la sicurezza web rendendo HTTPS accessibile a tutti, indipendentemente dal budget. Oggi protegge centinaia di milioni di siti web nel mondo.

Verificare se il tuo hosting supporta Let’s Encrypt

Molti hosting provider integrano Let’s Encrypt direttamente nel pannello di controllo. Su cPanel, cerca la sezione “SSL/TLS” o “Let’s Encrypt SSL”. Su Plesk, vai nella sezione “Certificati SSL/TLS” del dominio. Su DirectAdmin, controlla nella gestione SSL del dominio. Se il tuo hosting offre questa integrazione, l’installazione è automatica: basta un clic per attivare il certificato e il rinnovo viene gestito automaticamente ogni 90 giorni.

Se il tuo hosting non supporta Let’s Encrypt nel pannello, puoi installarlo manualmente via SSH con Certbot, lo strumento ufficiale di Let’s Encrypt.

Installare Certbot su un server Linux

Se hai accesso SSH al tuo server, Certbot è il modo più semplice per ottenere e gestire i certificati Let’s Encrypt. L’installazione dipende dal sistema operativo e dal server web:

# Ubuntu/Debian con Nginx
apt install certbot python3-certbot-nginx -y

# Ubuntu/Debian con Apache
apt install certbot python3-certbot-apache -y

# CentOS/RHEL con Nginx
dnf install certbot python3-certbot-nginx -y

Dopo l’installazione, esegui Certbot specificando il tuo dominio:

# Per Nginx
certbot --nginx -d tuodominio.com -d www.tuodominio.com

# Per Apache
certbot --apache -d tuodominio.com -d www.tuodominio.com

Certbot configura automaticamente il server web per HTTPS, imposta il redirect da HTTP a HTTPS e programma il rinnovo automatico. Verifica che il rinnovo funzioni con certbot renew –dry-run.

Configurare WordPress per HTTPS

Dopo aver installato il certificato SSL, devi aggiornare WordPress per usare HTTPS. Vai su Impostazioni > Generali nella bacheca di WordPress e modifica sia “Indirizzo WordPress (URL)” che “Indirizzo sito (URL)” da http:// a https://. Salva le impostazioni. Da questo momento WordPress genererà tutti i link interni con HTTPS.

Per sicurezza aggiuntiva, aggiungi queste righe al file wp-config.php:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);

Queste costanti forzano l’uso di HTTPS per la bacheca di amministrazione e la pagina di login, proteggendo le credenziali degli utenti.

Impostare il redirect da HTTP a HTTPS

Tutti gli URL vecchi con http:// devono essere reindirizzati automaticamente alla versione https://. Se Certbot non lo ha fatto automaticamente, aggiungi il redirect manualmente. Su Apache, nel file .htaccess:

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

Su Nginx, nel virtual host:

server {
    listen 80;
    server_name tuodominio.com www.tuodominio.com;
    return 301 https://$host$request_uri;
}

Il redirect 301 (permanente) comunica ai motori di ricerca che l’URL è cambiato definitivamente, trasferendo il valore SEO dalla versione HTTP a quella HTTPS.

Risolvere i contenuti misti (mixed content)

Dopo il passaggio a HTTPS, potresti vedere avvisi di contenuti misti nel browser: elementi della pagina (immagini, script, fogli di stile) ancora caricati via HTTP. Questo accade quando nel database ci sono URL con http:// inseriti manualmente nei contenuti. Per risolverlo, esegui un “cerca e sostituisci” nel database cambiando tutti i riferimenti da http://tuodominio.com a https://tuodominio.com. Puoi farlo con il plugin Better Search Replace o via WP-CLI con il comando wp search-replace.

Certificati wildcard per sottodomini

Se il tuo sito usa sottodomini (come blog.tuodominio.com o shop.tuodominio.com), puoi ottenere un certificato wildcard che copre tutti i sottodomini con un unico certificato. Let’s Encrypt supporta i certificati wildcard, ma richiedono la validazione DNS anziché quella HTTP. Con Certbot il comando è:

certbot certonly --manual --preferred-challenges dns -d "*.tuodominio.com" -d tuodominio.com

Certbot ti chiederà di creare un record TXT nel DNS del dominio per verificare la proprietà. Per automatizzare il rinnovo dei certificati wildcard, usa i plugin DNS di Certbot specifici per il tuo provider DNS (come Cloudflare, Route53 o DigitalOcean). Senza automazione, dovrai aggiornare manualmente il record DNS ogni 90 giorni.

Ottimizzare la configurazione SSL

Un certificato SSL installato non significa automaticamente una configurazione sicura. Disabilita i protocolli obsoleti (TLS 1.0 e 1.1) e usa solo TLS 1.2 e 1.3. Su Nginx, aggiungi:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

Abilita anche l’header HSTS (HTTP Strict Transport Security) che istruisce i browser a connettersi sempre via HTTPS, eliminando anche il redirect iniziale da HTTP:

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

Dopo queste ottimizzazioni, testa la configurazione su SSL Labs per ottenere un voto A+ nella valutazione della sicurezza SSL.

Rinnovo automatico e monitoraggio

I certificati Let’s Encrypt scadono dopo 90 giorni. Certbot installa automaticamente un timer che li rinnova prima della scadenza. Per verificare che il rinnovo automatico sia attivo, controlla con:

systemctl list-timers | grep certbot

Se il timer non è attivo, puoi aggiungere un cron job manuale:

0 3 * * * certbot renew --quiet --post-hook "systemctl reload nginx"

Questo comando tenta il rinnovo ogni notte alle 3:00 e ricarica il server web solo se il certificato è stato effettivamente rinnovato. Per un monitoraggio aggiuntivo, usa servizi come SSL Labs per verificare periodicamente che il certificato sia valido e la configurazione SSL sia ottimale.

Serve aiuto con SSL?

Se hai difficoltà nell’installazione del certificato SSL o nel risolvere errori di contenuti misti, il team di SoccorsoWP può configurare HTTPS sul tuo sito WordPress in modo completo e corretto. Apri un ticket e rendi il tuo sito sicuro per tutti i visitatori.

Condividi: