bg-tutorials

Come installare un certificato SSL su Joomla e forzare HTTPS

Spostare un sito Joomla su HTTPS richiede tre passaggi: installare un certificato SSL sul server, impostare Force HTTPS nella Configurazione Globale di Joomla e aggiungere un reindirizzamento 301 affinché i vecchi link HTTP vengano seguiti correttamente. Il terzo passaggio ha un’insidia specifica di Joomla che manda in confusione la maggior parte delle persone, ed è trattata di seguito, prima del codice.

Risposta rapida: installa il certificato tramite il pannello di hosting, poi vai su System > Global Configuration > Server e imposta Force HTTPS su Entire Site. Per aggiungere un reindirizzamento a livello di server, rinomina prima htaccess.txt nella root di Joomla in .htaccess, perché Apache ignora il file con il nome originale.

SSL (abbreviazione di Secure Sockets Layer, anche se ogni certificato emesso oggi utilizza TLS) è ciò che rimuove l’etichetta “Non sicuro” dalla barra degli indirizzi. Se vuoi prima il contesto generale, leggi cos’è un certificato SSL. Questi passaggi si applicano a Joomla 5 e Joomla 6.

Quale metodo si adatta alla tua configurazione Joomla

La tua configurazioneCome ottenere il certificatoTempo approssimativo
Host gestito o cPanel con AutoSSLEmetti il certificato gratuito nel pannello, poi imposta Force HTTPS10 minuti
Un host senza strumenti SSL, o un tuo VPSCertbot per un certificato Let’s Encrypt, poi imposta Force HTTPS20 minuti
Certificato a pagamento (OV, EV o wildcard)Genera un CSR, installa manualmente, poi imposta Force HTTPS30 minuti più validazione
Cloudflare davanti al tuo sitoCertificato sull’origine, Cloudflare impostato su Full (strict), e Behind Load Balancer attivato15 minuti

Effettua un backup prima di iniziare. Akeeba Backup è la scelta abituale su Joomla. La modalità di fallimento di questa procedura consiste nel perdere l’accesso al proprio pannello di amministrazione, e un backup unito al passaggio di recupero nella sezione configuration.php più sotto ti permetterà di uscirne.

Quale certificato SSL dovrebbe usare un sito Joomla?

Inizia con l’opzione gratuita. La maggior parte degli host emette automaticamente certificati Let’s Encrypt gratuiti, e la crittografia fornita da un certificato gratuito è identica a quella di un certificato a pagamento. Ciò che differisce tra un certificato SSL Joomla e un altro è ciò che l’autorità di certificazione ha verificato prima di emetterlo, e cosa ottieni quando qualcosa va storto.

TipoCosa controlla la CAEmesso inAdatto a
Domain Validation (DV)Che tu controlli il dominioMinutiBlog, siti vetrina, la maggior parte delle installazioni Joomla
Organization Validation (OV)Il dominio più la tua organizzazione registrataDa 1 a 3 giorni lavorativiSiti aziendali, aree membri, portali clienti
Extended Validation (EV)Un controllo legale e operativo completo dell’aziendaDa 1 a 3 giorni lavorativiNegozi, finanza, ovunque l’identità conti

Se la tua installazione Joomla serve sottodomini, un certificato wildcard li copre tutti con un unico certificato. Non sei sicuro di quale tipo si applichi? La SSL Wizard ti aiuta a restringere la scelta in poche domande.

Un certificato gratuito smette di essere la risposta giusta in quattro casi: se accetti pagamenti e vuoi una garanzia dietro il certificato, se hai bisogno che i dettagli verificati della tua organizzazione siano inclusi al suo interno e non solo il controllo del dominio, se gestisci sottodomini e l’emissione gratuita del wildcard è complicata sul tuo host, oppure se il tuo host non automatizza il rinnovo. Quest’ultimo punto conta più di quanto si pensi, e la sezione successiva spiega perché.

Installare il certificato sul server

Joomla non installa i certificati. Questo passaggio avviene sul server, prima di toccare Joomla in qualsiasi modo.

Dal pannello di hosting

Cerca SSL/TLS, Let’s Encrypt o AutoSSL nel tuo pannello di controllo. Su cPanel si trova sotto Security. Emetti il certificato sia per il dominio apex che per la versione www, altrimenti quello che ometti genererà un avviso di mismatch del nome.

I certificati Let’s Encrypt durano 90 giorni e sono pensati per rinnovarsi automaticamente circa 30 giorni prima della scadenza. Quando questa automazione si interrompe, di solito dopo un trasferimento di dominio o una modifica DNS, il sito continua a funzionare per settimane e poi diventa insicuro senza preavviso. Conferma che il rinnovo automatico sia attivo, e dopo la prima data di rinnovo prevista, controlla il certificato con l’SSL Checker. Se la data di scadenza è avanzata, il rinnovo funziona.

Su un VPS senza pannello

Usa Certbot, il client di Let’s Encrypt. Emette il certificato dalla riga di comando, configura Apache o Nginx e installa il proprio timer di rinnovo.

Installare manualmente un certificato a pagamento

Non saltare i certificati intermedi. Installando solo il certificato principale senza la catena, la maggior parte dei browser desktop mostra comunque un lucchetto, perché memorizzano nella cache certificati intermedi visti altrove. I browser mobili, i gateway di pagamento e i client API invece fallirebbero. Se il problema che stai affrontando riguarda la catena, consulta certificati intermedi scaduti.

Come forzare HTTPS in Joomla

Con un certificato funzionante sul server, indica a Joomla di utilizzarlo. Accedi all’amministrazione e vai su System > Global Configuration > Server. Nel blocco Server in alto in quella scheda troverai Force HTTPS, che ha tre stati piuttosto che un semplice acceso/spento.

  • None. Joomla non fa nulla. Le pagine restano raggiungibili sia via HTTP che via HTTPS.
  • Administrator Only. L’amministrazione, inclusa la schermata di login, viene forzata su HTTPS, mentre il sito pubblico resta invariato. Questo è lo stato da usare mentre un certificato è ancora in fase di validazione, o su un sito che stai migrando in fasi. La tua password smette immediatamente di viaggiare in chiaro, senza toccare nulla che i visitatori vedono.
  • Entire Site. Tutto viene forzato su HTTPS. Questo è ciò che vuoi una volta confermato che il certificato funziona.

Seleziona Entire Site e salva. Verifica che il certificato risolva sul tuo dominio prima di farlo. Se Force HTTPS è attivato mentre il certificato è rotto o assente, anche l’amministrazione diventa irraggiungibile, e avrai bisogno del passaggio di recupero descritto più sotto.

Queste istruzioni riguardano Joomla 5 e Joomla 6, i due branch supportati. Joomla 6.0 è stato rilasciato nell’ottobre 2025, e Joomla 5 smette di ricevere aggiornamenti funzionali il 13 ottobre 2026, dopo il quale riceverà solo patch di sicurezza fino a ottobre 2027. Se usi ancora Joomla 3, questo ha raggiunto la fine del ciclo di vita nell’agosto 2023 e l’impostazione si trova in un punto diverso, quindi aggiorna prima di seguire qualsiasi cosa qui descritta.

Impostare Force HTTPS da configuration.php

Ogni impostazione nella Configurazione Globale è memorizzata in configuration.php nella root di Joomla. Modificare quel file via FTP è il modo per rientrare quando Force HTTPS ti ha bloccato fuori dall’amministrazione, che è esattamente la situazione in cui il menu a discesa non è più raggiungibile.

La riga rilevante è:

public $force_ssl = 2;

I valori corrispondono ai tre stati: 0 è None, 1 è Administrator, e 2 è sia il sito che l’amministrazione. Riportarlo a 0 via FTP annulla un blocco in pochi secondi.

Troverai una seconda riga vicina:

public $live_site = '';

Molti tutorial su Joomla e HTTPS ti dicono di compilarla con il tuo indirizzo https, e molti di essi la scrivono come var $live_site. Quella sintassi appartiene a Joomla 1.5, che usava la sintassi delle classi di PHP 4 ed è stato ritirato nel 2012. Joomla attuale usa public, e l’impostazione è documentata come opzionale. Lasciala vuota a meno che non abbia un motivo specifico per fissare l’URL del sito. Non è ciò che attiva HTTPS, e impostarla in modo errato è un modo comune per rompere un sito Joomla. $force_ssl è l’impostazione che fa il lavoro effettivo.

Aggiungere un reindirizzamento 301 in .htaccess

Force HTTPS gestisce le richieste che raggiungono Joomla. Un reindirizzamento a livello di server è più veloce, perché avviene prima che PHP venga eseguito, e continua a funzionare se Joomla è mai offline. Su Apache questo significa .htaccess, ed ecco la parte che quasi ogni guida salta.

Prima di tutto, rinomina htaccess.txt

Joomla distribuisce il file come htaccess.txt, non .htaccess. Apache lo ignora con quel nome. Se incolli regole di reindirizzamento in un file chiamato htaccess.txt, o in un file .htaccess che non esiste ancora, non succede nulla e non c’è nessun errore che ti indichi il perché.

  • Rinomina htaccess.txt in .htaccess nella root di Joomla. Non modificare htaccess.txt lasciandolo lì: un aggiornamento di Joomla sovrascrive quel file e le tue modifiche vanno perse insieme ad esso.
  • Effettua la rinomina prima di attivare Use URL Rewriting nella Configurazione Globale. Attivando prima il rewriting, Joomla inizia a produrre URL senza index.php che Apache non sa come instradare, quindi ogni pagina eccetto la home restituisce 404.

Poi aggiungi il reindirizzamento

Aggiungi queste righe vicino all’inizio di .htaccess, sopra il blocco di rewrite proprio di Joomla:

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

Due dettagli determinano se questo funziona. La condizione deve essere off, cioè “reindirizza quando la richiesta non è già sicura”. Scritta come on, cosa che appare in un numero sorprendente di snippet pubblicati, la regola si attiva solo sulle richieste già HTTPS e le rimanda di nuovo a HTTPS, creando un loop. E il flag R=301 è ciò che lo rende un reindirizzamento permanente. Senza di esso, o con un semplice R, ottieni un 302 temporaneo o un rewrite interno che non comunica mai ai motori di ricerca che qualcosa è stato spostato.

Su Nginx

Nginx non ha .htaccess e non legge le regole di rewrite di Apache. Modifica invece il blocco server:

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

Testa con nginx -t, poi ricarica con systemctl reload nginx.

Risolvere ciò che il passaggio lascia indietro

Svuota la cache di Joomla. Questa è la prima cosa da fare ed è quella più spesso dimenticata. Joomla continuerà volentieri a servire pagine memorizzate nella cache piene di markup HTTP, il che fa sembrare rotta una migrazione completata. Vai su System > Clear Cache, nel pannello Maintenance, e svuota anche la cache della tua CDN se ne usi una.

Correggi il contenuto misto. Una pagina servita via HTTPS che carica ancora un’immagine, uno script o un foglio di stile via HTTP è contenuto misto. I browser trattano le due categorie diversamente: i contenuti multimediali sono di solito aggiornabili, quindi il browser richiede silenziosamente la risorsa via HTTPS al posto di HTTP, mentre script e fogli di stile sono bloccabili e vengono semplicemente rifiutati, motivo per cui una pagina interessata può arrivare completamente senza stile. Su Joomla le fonti più comuni sono URL codificati staticamente negli override dei template, nelle impostazioni dei moduli e nelle estensioni di terze parti. La console del browser identifica la risorsa incriminata. La nostra guida su come risolvere i contenuti misti tratta la diagnosi in modo completo.

Aggiorna la sitemap e robots.txt. Rigenera la sitemap XML affinché elenchi gli URL https, e controlla che robots.txt non faccia riferimento alla versione http di nulla.

Risoluzione dei problemi SSL su Joomla

Troppi reindirizzamenti dopo aver attivato Force HTTPS

Questo è il più comune problema HTTPS su Joomla, e accade perché due consigli standard sono incompatibili tra loro. Se un proxy come Cloudflare termina il TLS e poi comunica con il tuo server via HTTP semplice, Joomla non vede mai una richiesta HTTPS. Force HTTPS conclude che il visitatore è arrivato in modo non sicuro e lo reindirizza a HTTPS, il proxy risponde a quella richiesta di nuovo via HTTP, e il loop continua finché il browser non si arrende con ERR_TOO_MANY_REDIRECTS.

Ci sono due soluzioni e generalmente le vuoi entrambe:

  • Imposta la modalità di crittografia SSL/TLS di Cloudflare su Full (strict) e mantieni un certificato valido sul server di origine. La modalità Flexible, che molti tutorial popolari su Joomla raccomandano ancora come opzione gratuita rapida, è ciò che crea il loop.
  • Attiva Behind Load Balancer su Yes. Si trova nella stessa scheda System > Global Configuration > Server, più in basso nel blocco Proxy. Questo dice a Joomla di fidarsi dell’header del protocollo inoltrato dal proxy invece di cercare una connessione HTTPS diretta.

Un avvertimento su questa seconda impostazione: attiva Behind Load Balancer solo se il tuo sito è realmente dietro un proxy, un load balancer o una CDN. Su un host ordinario, fidarsi di un header inoltrato che chiunque può inviare riduce la sicurezza senza alcun beneficio.

Altri problemi comuni

SintomoCausaSoluzione
Escluso dall’amministrazioneForce HTTPS attivato mentre il certificato è assente o rottoImposta $force_ssl su 0 in configuration.php via FTP, correggi il certificato, poi riattiva
Le regole di reindirizzamento non fanno nullaSono state scritte in htaccess.txt, o in un file .htaccess che non esisteRinomina htaccess.txt in .htaccess
Ogni pagina eccetto la home restituisce 404URL Rewriting è stato attivato prima della rinominaRinomina il file, o disattiva il rewriting finché non lo hai fatto
Lucchetto assente solo su alcune pagineContenuto misto su quelle pagineTrova la risorsa HTTP nella console del browser
Il sito funzionava bene, è diventato insicuro settimane dopoUn certificato Let’s Encrypt è scaduto perché il rinnovo si è rottoRinnova, poi conferma il rinnovo automatico nel tuo pannello
Funziona nel browser, fallisce con un’app o gatewayCatena di certificati incompletaInstalla il bundle CA completo, ricontrolla con l’SSL Checker
Mismatch del nome su www o sull’apexIl certificato copre solo uno dei due nomiRinnova coprendo entrambi. Vedi common name invalid

Se il certificato è installato e il sito continua a essere segnalato come non sicuro, le guide agli errori SSL trattano i codici di errore specifici dei browser.

Dopo il passaggio: checklist SEO

  • Aggiungi la proprietà HTTPS in Google Search Console. Una proprietà HTTP non riporta dati sugli URL HTTPS. Aggiungi quella nuova, oppure usa una proprietà di dominio, che copre entrambi.
  • Invia nuovamente la sitemap con gli URL https.
  • Controlla che i tag canonical puntino a https nella tua estensione SEF o SEO.
  • Aggiorna analytics e qualsiasi servizio di terze parti che memorizza l’URL del tuo sito.

Aspettati un po’ di movimento. Google tratta un passaggio da HTTP a HTTPS come un trasferimento del sito con cambiamenti di URL, quindi le impressioni appariranno divise tra le proprietà HTTP e HTTPS per un po’, e i posizionamenti spesso fluttuano per alcune settimane prima di stabilizzarsi. Purché ogni pagina si risolva correttamente e i reindirizzamenti 301 siano al loro posto, non c’è nulla da correggere.

Una volta che HTTPS è stabile da un po’, considera l’HSTS, che indica ai browser di rifiutare del tutto l’HTTP semplice per il tuo dominio. Lascia disattivata inizialmente la direttiva preload, perché è lenta da annullare e renderebbe irraggiungibile qualsiasi sottodominio ancora su HTTP.

Domande Frequenti

Come attivo SSL in Joomla?

Installa prima un certificato SSL sul tuo server, tramite il pannello di hosting o manualmente. Poi accedi all’amministrazione di Joomla, apri System > Global Configuration > Server, e imposta Force HTTPS su Entire Site. Joomla stesso non installa i certificati. Applica solo quello che il tuo server ha già.

Dove si trova l’impostazione Force HTTPS in Joomla?

Nella scheda System > Global Configuration > Server, nel blocco Server in alto. Offre tre stati: None, Administrator Only, e Entire Site. Administrator Only è utile mentre un certificato è ancora in fase di validazione, perché protegge il tuo login senza cambiare ciò che vedono i visitatori.

Perché il mio sito Joomla mostra “troppi reindirizzamenti” dopo aver attivato Force HTTPS?

Quasi sempre perché un proxy come Cloudflare sta terminando il TLS e passando HTTP semplice al tuo server, quindi Joomla pensa che ogni richiesta sia arrivata in modo non sicuro e la reindirizza di nuovo. Imposta la modalità di crittografia di Cloudflare su Full (strict) invece che Flexible, e attiva Behind Load Balancer su Yes, nel blocco Proxy della Configurazione Globale. Attiva quell’impostazione solo se sei effettivamente dietro un proxy.

Devo modificare configuration.php per usare HTTPS?

No. Il menu a discesa della Configurazione Globale scrive lo stesso valore contenuto nel file. Modificare configuration.php è utile in una situazione: quando Force HTTPS ti ha bloccato fuori dall’amministrazione, puoi riportare $force_ssl a 0 via FTP. Ignora i tutorial più vecchi che ti dicono di compilare var $live_site. Quella sintassi è stata ritirata con Joomla 1.5 nel 2012, e l’impostazione è comunque opzionale.

Perché il mio reindirizzamento .htaccess non funziona in Joomla?

Controlla prima il nome del file. Joomla distribuisce il file come htaccess.txt e Apache lo ignora con quel nome, quindi le regole incollate al suo interno non vengono mai eseguite. Rinominalo in .htaccess. Se il file è corretto, controlla la condizione: deve leggere RewriteCond %{HTTPS} off. Scritta come “on” corrisponde solo alle richieste già sicure, il che produce un loop di reindirizzamento invece di un reindirizzamento.

A quali versioni di Joomla si applicano questi passaggi?

Joomla 5 e Joomla 6, i due branch attualmente supportati. Joomla 6.0 è stato rilasciato nell’ottobre 2025. Joomla 5 riceve aggiornamenti funzionali fino al 13 ottobre 2026 e patch di sicurezza fino a ottobre 2027. Joomla 3 ha raggiunto la fine del ciclo di vita nell’agosto 2023 e organizza la sua configurazione in modo diverso, quindi aggiorna prima di seguire questi passaggi.

Stai migrando una piattaforma diversa, o vuoi la procedura generale? Consulta la nostra guida su come passare un sito da HTTP a HTTPS.

Risparmia il 10% sui certificati SSL ordinando oggi stesso da SSL Dragon!

Emissione rapida, crittografia avanzata, affidabilità del browser al 99,99%, assistenza dedicata e garanzia di rimborso entro 25 giorni. Codice coupon: SAVE10

Un'immagine dettagliata di un drago in volo
Scritto da

Scrittore di contenuti con esperienza, specializzato in certificati SSL. Trasforma intricati argomenti di cybersicurezza in contenuti chiari e coinvolgenti. Contribuisci a migliorare la sicurezza digitale attraverso narrazioni d'impatto.