Https e il certificato
Modulo 3: Indirizzo, https e utenti · Tempo di lettura: 8 minuti
Obiettivo della lezione: Dopo questa lezione sarà in grado di configurare completamente un sito WordPress su https e saprà cosa fanno l'indirizzo WordPress e l'indirizzo del sito.
Concetti chiave: TLS, certificato, Let's Encrypt, rinnovo automatico, indirizzo WordPress (siteurl), indirizzo del sito (home), WP_HOME e WP_SITEURL, HSTS, rimanere esclusi
Cosa fa https
Con https tutto ciò che passa tra browser e server viene cifrato: password, moduli, cookie, anche le pagine normali. Senza https chiunque si trovi sulla stessa rete (una wifi pubblica, un router compromesso) può leggere e persino modificare la pagina. I browser mostrano un sito senza https come "non sicuro" e alcune funzioni (come la posizione o la fotocamera) funzionano solo con https.
La cifratura si chiama TLS. Per dimostrare che il browser sta davvero comunicando con example.com e non con un intermediario, il server possiede un certificato: una prova digitale, firmata da un ente emittente di cui i browser si fidano. Il certificato indica i nomi per cui è valido e fino a quando.
Certificati gratuiti e rinnovo
Let's Encrypt rilascia certificati gratuiti. Quasi tutti i provider di hosting li richiedono e li rinnovano automaticamente. Un certificato di Let's Encrypt è attualmente valido 90 giorni, e Let's Encrypt ha annunciato di voler ridurre gradualmente questa validità a 45 giorni. Rinnovare manualmente non è quindi un'opzione: deve avvenire automaticamente.
Un certificato a pagamento non cifra meglio. La differenza sta in un controllo aggiuntivo sull'organizzazione (e talvolta in una garanzia). Per la maggior parte dei siti un certificato gratuito è più che sufficiente.
A cosa prestare attenzione:
- Il certificato deve coprire ogni nome che un visitatore può digitare:
example.comewww.example.com. Anche il nome che serve solo per il reindirizzamento, perché il browser controlla il certificato prima del reindirizzamento. - Il rinnovo automatico funziona solo se il DNS punta al Suo server. Se ha spostato il DNS o ha aggiunto un proxy (come Cloudflare) davanti al sito, verifichi che il rinnovo funzioni ancora.
- Un record CAA nel DNS può determinare quali enti emittenti possono creare certificati. Se Let's Encrypt non vi è incluso, la richiesta fallisce (corso DNS, lezione 5.2).
Due indirizzi in WordPress
Sotto Impostazioni > Generale si trovano due indirizzi. Sembrano una duplicazione superflua, ma hanno un significato diverso:
| Campo | Nel database | Significato |
|---|---|---|
| Indirizzo WordPress (URL) | siteurl | Dove si trovano i file di WordPress (wp-admin, wp-includes) |
| Indirizzo del sito (URL) | home | L'indirizzo che usano i visitatori |
Di solito sono uguali, ad esempio entrambi https://example.com. Differiscono solo se WordPress si trova in una sottocartella ma il sito deve apparire sulla cartella principale.
WordPress costruisce tutti i link usando questi indirizzi: verso le pagine, i fogli di stile, le immagini, l'area di amministrazione. Se qui compare http://, WordPress costruisce le pagine con link http://, anche se il visitatore arriva via https. Questo genera contenuti misti (lezione 3.2) e reindirizzamenti avanti e indietro.
Portare un sito a https
Se ha un sito esistente su http, ecco i passaggi:
- Richiedere il certificato per entrambi i nomi e verificare che
https://example.comfunzioni (vedrà una pagina WordPress, magari ancora senza formattazione). - Fare un backup (lezione 8.1).
- Impostare entrambi gli indirizzi su
https://in Impostazioni > Generale e salvare. Sarà disconnesso; effettui nuovamente l'accesso tramite https. - Convertire i vecchi link nei contenuti da
http://example.comahttps://example.com. Lo faccia con uno strumento che comprende i dati serializzati, comewp search-replaceo un plugin di ricerca e sostituzione (lezione 3.2), mai con un semplice comando SQL. - Reindirizzamento: faccia in modo che il server web invii tutte le richieste su http con un 301 verso https (lezione 3.2). Molti provider di hosting hanno un'opzione dedicata per questo; altrimenti poche righe nel file
.htaccess. - Verificare con l'esercizio di questa lezione e quello della lezione 3.2.
Esclusi: se l'indirizzo è errato
Se digita un errore di battitura negli indirizzi (htps://, un dominio sbagliato), dopo il salvataggio WordPress La reindirizza a quell'indirizzo errato. Non potrà più raggiungere l'area di amministrazione. Niente panico, ci sono due vie d'uscita:
Tramite wp-config.php. Inserisca sopra la riga "stop con le modifiche":
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );Queste righe hanno la priorità sui valori nel database. I campi in Impostazioni > Generale diventeranno quindi grigi. Effettui l'accesso, inserisca i valori corretti nel database e rimuova di nuovo le righe (oppure le lasci intenzionalmente, così nessuno potrà modificare gli indirizzi per errore tramite l'area di amministrazione).
Tramite phpMyAdmin. Apra la tabella wp_options e modifichi i valori di siteurl e home.
HSTS: far ricordare al browser
Con l'intestazione HSTS (Strict-Transport-Security) il server comunica al browser: "per il periodo seguente, accedi qui solo tramite https." Il browser convertirà poi da solo ogni http:// in https://, senza prima effettuare una richiesta non protetta.
Strict-Transport-Security: max-age=31536000; includeSubDomainsHSTS è un buon passo aggiuntivo, ma con un'avvertenza: un browser che ha già visto HSTS rifiuterà successivamente di aprire il sito senza un certificato valido, nemmeno con "procedi comunque". Con includeSubDomains questo vale per ogni sottodominio. Se ha un sottodominio senza certificato (ad esempio un vecchio sistema interno), dopo HSTS diventerà irraggiungibile. Inizi quindi con un max-age breve (ad esempio un giorno, 86400), verifichi tutto e poi lo estenda.
In pratica: come si presenta in un pannello
Come esempio usiamo DirectAdmin. In cPanel questa sezione si chiama SSL/TLS Status (AutoSSL), in Plesk SSL/TLS Certificates.
- Apra Certificato nel Suo dominio e scelga Certificato gratuito e automatico di Let's Encrypt.
- Selezioni
example.comewww.example.come richieda il certificato. - Nelle impostazioni del dominio attivi l'opzione per reindirizzare sempre i visitatori a https (in DirectAdmin: Forza SSL con reindirizzamento https). Usi un solo metodo di reindirizzamento: due metodi diversi contemporaneamente possono creare un ciclo ("troppi reindirizzamenti").
- In WordPress vada su Impostazioni > Generale e imposti entrambi gli indirizzi su
https://.
Riepilogo
- Https cifra tutto ciò che passa tra browser e server; il certificato dimostra chi è il server.
- I certificati gratuiti di Let's Encrypt hanno validità breve e vengono rinnovati automaticamente; devono coprire ogni nome che un visitatore digita.
- L'indirizzo WordPress (siteurl) e l'indirizzo del sito (home) devono essere entrambi impostati su
https://. - Se rimane escluso a causa di un indirizzo errato, lo ripristini con WP_HOME e WP_SITEURL in wp-config.php o in phpMyAdmin.
- HSTS è un buon passo aggiuntivo; inizi con una validità breve.
Quiz
Esercizio
Esercizio A3.1: Il Suo certificato è corretto? Inserisca l'indirizzo del Suo sito. Il programma stabilisce una connessione TLS con il nome senza www e con www (se esiste) e verifica: il certificato è valido e affidabile, copre entrambi i nomi, è valido per più di 14 giorni, e il sito invia un'intestazione HSTS? Se HSTS manca, questo viene segnalato in arancione con una spiegazione, non come errore.
Per approfondire
Questi articoli descrivono i passaggi nei pannelli di WebOké; in altri pannelli funzionano in modo simile.
- Guida DirectAdmin 6.1: Cos'è SSL e come lo gestisce WebOké?
- Guida DirectAdmin 6.2: Richiedere un certificato Let's Encrypt gratuito
- Guida DirectAdmin 6.3: Certificato per www, sottodomini e wildcard
- Guida DirectAdmin 6.4: Reindirizzare sempre i visitatori su https
- Attivazione, rinnovo e risoluzione dei problemi del certificato SSL
- La differenza tra un certificato gratuito e uno a pagamento
- Corso gratuito DNS 5.2: CAA: chi può emettere certificati?
