In questa guida imparerai come installare un certificato SSL su Apache, passo dopo passo. Le istruzioni si applicano ad Apache 2.4, l’attuale versione stabile.
Indice
- Come generare un codice CSR su Apache?
- Installare un certificato SSL su Apache
- Testare l’installazione SSL
- Dove acquistare un certificato SSL per Apache?
Come generare un codice CSR su Apache?
La Certificate Signing Request, o semplicemente CSR, è un piccolo file di testo contenente informazioni sulla proprietà del dominio e/o dell’azienda. La generazione di una CSR è parte integrante del processo di acquisto SSL, e tutte le Certificate Authority commerciali richiedono ai richiedenti SSL di completare questo passaggio.
Hai due opzioni:
- Genera la CSR automaticamente utilizzando il nostro CSR Generator.
- Segui il nostro tutorial passo dopo passo su come creare la CSR su Apache.
Installare un certificato SSL su Apache
Dopo che la Certificate Authority firma e ti invia il certificato SSL, puoi installarlo tranquillamente sul tuo server Apache. Segui i passaggi qui sotto.
Passo 1: Prepara i file del certificato
Scarica ed estrai i file dalla cartella ZIP ricevuta dalla tua Certificate Authority. Solitamente troverai:
- Il file .crt – il tuo certificato SSL principale.
- Il file .ca-bundle – i certificati intermedi (e root) che formano la catena di fiducia. Questa catena è necessaria affinché i browser e le applicazioni possano verificare il tuo certificato. Senza di essa, alcuni client potrebbero contrassegnare il tuo sito come non sicuro.
Carica questi file, insieme alla chiave privata (.key) generata insieme alla tua CSR, in una directory sicura sul tuo server, ad esempio /etc/ssl/. Mantieni la chiave privata leggibile solo da root (chmod 600).
Consigliato (Apache 2.4.8 e versioni successive): combina il tuo certificato e il bundle CA in un unico file “catena completa”. Da Apache 2.4.8, la direttiva SSLCertificateFile carica i certificati intermedi direttamente da questo file, motivo per cui la vecchia direttiva SSLCertificateChainFile non è più necessaria:
cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt
Se la tua CA ha fornito i certificati intermedi come file separati, concatenali prima con il tuo certificato, seguito dagli intermedi ordinati dal certificato che ha firmato il tuo certificato fino alla root (il certificato root stesso è facoltativo):
cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt
Ad esempio, durante l’installazione di un certificato Sectigo PositiveSSL, dovresti concatenare il certificato del tuo dominio con il bundle intermedio Sectigo. Usa sempre i nomi file esatti forniti dalla tua CA.
Passo 2: Abilita il modulo SSL (mod_ssl)
Prima di configurare HTTPS, assicurati che il modulo SSL di Apache sia abilitato.
Su Debian/Ubuntu, abilita mod_ssl (e mod_headers, che ti servirà per l’header HSTS nel Passo 4):
sudo a2enmod ssl
sudo a2enmod headers
Su RHEL/CentOS/AlmaLinux/Rocky Linux, installa il pacchetto del modulo SSL (il modulo si carica automaticamente una volta installato):
sudo dnf install mod_ssl
Passo 3: Individua il file di configurazione di Apache
A seconda del tuo sistema operativo e della versione di Apache, la configurazione può risiedere in file diversi. Cerca httpd.conf, apache2.conf, o un file di configurazione SSL/sito dedicato, in una delle seguenti posizioni:
- Debian/Ubuntu: configurazione principale /etc/apache2/apache2.conf; configurazioni per singolo sito in /etc/apache2/sites-available/.
- RHEL/CentOS/AlmaLinux/Rocky: configurazione principale /etc/httpd/conf/httpd.conf; configurazione SSL /etc/httpd/conf.d/ssl.conf.
Nota: Se il tuo server Apache funziona su Ubuntu, puoi anche seguire le nostre istruzioni dedicate per l’installazione SSL su Ubuntu.
Passo 4: Configura il virtual host
Innanzitutto, fai un backup del tuo attuale file di configurazione. In questo modo, se qualcosa va storto, puoi ripristinare rapidamente le tue modifiche:
sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup
Ora apri il file di configurazione e imposta il virtual host HTTPS (porta 443). Un virtual host completo e moderno appare così:
<VirtualHost *:443>
ServerName www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example
SSLEngine on
# Apache 2.4.8+ : certificato del server + catena intermedia in UN SOLO file
SSLCertificateFile /etc/ssl/example_com_fullchain.crt
SSLCertificateKeyFile /etc/ssl/example_com.key
# Rafforzamento TLS consigliato (2026)
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder off
# Indica ai browser di usare sempre HTTPS. Rimuovi il # iniziale per abilitare HSTS,
# ma solo dopo aver confermato che HTTPS funziona correttamente:
# Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
Sostituisci example.com, la document root, e i percorsi dei file con i tuoi valori. Ecco cosa fanno le direttive chiave:
- SSLEngine on – abilita SSL/TLS per questo virtual host.
- SSLCertificateFile – percorso del tuo file catena completa (certificato + intermedi) creato nel Passo 1. Su Apache 2.4.8+ questa singola direttiva sostituisce la deprecata SSLCertificateChainFile.
- SSLCertificateKeyFile – percorso della tua chiave privata, generata insieme alla CSR.
- SSLProtocol -all +TLSv1.2 +TLSv1.3 – disabilita i vecchi protocolli SSL/TLS non sicuri e consente solo TLS 1.2 e TLS 1.3.
- Strict-Transport-Security (HSTS) – indica ai browser di connettersi solo tramite HTTPS. Richiede mod_headers (abilitato nel Passo 2). Attivalo solo dopo aver confermato che HTTPS funziona correttamente.
Assicurati che nessuna di queste righe inizi con un # (che le trasformerebbe in commenti). Su Debian/Ubuntu, ${APACHE_LOG_DIR} corrisponde a /var/log/apache2; sui sistemi basati su RHEL usa invece /var/log/httpd/.
Server obsoleti: Se sei bloccato su una versione di Apache precedente alla 2.4.8, mantieni il certificato e la catena in file separati e aggiungi la direttiva deprecata SSLCertificateChainFile /etc/ssl/example_com.ca-bundle sotto SSLCertificateFile. Su qualsiasi server moderno, è preferibile l’approccio a catena completa sopra descritto.
Rafforzamento avanzato (facoltativo): per una suite di cifratura più robusta e l’OCSP stapling, genera una configurazione su misura con il Mozilla SSL Configuration Generator. L’OCSP stapling richiede anche una direttiva SSLStaplingCache nella configurazione globale di Apache.
Abilita il sito: Su Debian/Ubuntu, un virtual host posizionato in /etc/apache2/sites-available/ non viene caricato finché non lo abiliti. Se hai salvato questa configurazione come nuovo file (ad esempio example-ssl.conf), attivalo con:
sudo a2ensite example-ssl.conf
Puoi invece modificare il file default-ssl.conf fornito di default, ma anch’esso deve essere abilitato con a2ensite default-ssl. Su RHEL/CentOS/AlmaLinux/Rocky, i file in /etc/httpd/conf.d/ si caricano automaticamente — ma nota che ssl.conf include già un blocco predefinito <VirtualHost _default_:443> con un certificato autofirmato, quindi modifica quel blocco oppure aggiungi il tuo virtual host come file separato, ad esempio /etc/httpd/conf.d/yourdomain.conf, per evitare due host sovrapposti sulla porta 443.
Passo 5: Reindirizza HTTP a HTTPS
Per assicurarti che i visitatori raggiungano sempre la versione sicura del tuo sito, aggiungi un secondo virtual host sulla porta 80 che reindirizzi permanentemente tutto il traffico HTTP verso HTTPS:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
Passo 6: Testa la configurazione e riavvia Apache
Testa sempre la tua configurazione prima di riavviare. Un errore di sintassi può mettere offline il tuo sito, quindi esegui:
sudo apachectl configtest
Se tutto è corretto, vedrai:
Syntax OK
Ora applica le modifiche ricaricando Apache (un ricaricamento attiva la nuova configurazione senza interrompere le connessioni esistenti):
sudo systemctl reload apache2 # Debian/Ubuntu
sudo systemctl reload httpd # RHEL/CentOS/AlmaLinux/Rocky
Se un semplice ricaricamento non è sufficiente, riavvia invece il servizio (sudo systemctl restart apache2 o httpd). Sui sistemi più vecchi senza systemd, usa sudo apachectl graceful.
Se l’installazione è avvenuta con successo, congratulazioni! Il tuo sito web è ora protetto con SSL/TLS.
Testare l’installazione SSL
Dopo aver installato il certificato SSL su Apache, verifica che tutto funzioni come previsto. Una scansione istantanea rivelerà eventuali errori o vulnerabilità che potrebbero influire sulle prestazioni del tuo certificato. Usa il nostro strumento SSL Checker per controllare lo stato della tua installazione.
Puoi anche confermare il certificato e la sua catena direttamente dalla riga di comando:
openssl s_client -connect www.example.com:443 -servername www.example.com
Dove acquistare un certificato SSL per Apache?
Il posto migliore per ottenere un certificato SSL per Apache è SSL Dragon. Offriamo prezzi e sconti imbattibili su tutta la nostra gamma di prodotti SSL, e abbiamo selezionato accuratamente i migliori marchi SSL sul mercato per dotare il tuo sito web di una protezione a prova di proiettile. Tutti i nostri certificati SSL sono compatibili con Apache. Ottieni subito un certificato SSL!
Tieni presente che la durata di vita dei certificati SSL/TLS si sta riducendo: la validità massima scende a 200 giorni a marzo 2026, a 100 giorni nel 2027, e a soli 47 giorni entro il 2029. Cicli di vita più brevi significano rinnovi più frequenti, quindi vale la pena pianificare in anticipo il processo di rinnovo (e la sua automazione).
Domande frequenti
SSL (Secure Sockets Layer), ora sostituito da TLS (Transport Layer Security), è un protocollo crittografico che cifra la comunicazione tra due endpoint di rete, ad esempio un server web come Apache e il browser di un utente.
Sulle distribuzioni Debian e Ubuntu, cerca nella configurazione la direttiva del protocollo SSL:grep -ir SSLProtocol /etc/apache2/
Se SSL è configurato, vedrai un output simile a:/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3
Puoi anche confermare che il modulo SSL sia caricato nel server in esecuzione:apachectl -M | grep ssl
Il file di configurazione può risiedere in posizioni diverse a seconda del tuo sistema operativo e configurazione. Su Debian/Ubuntu, controlla /etc/apache2/apache2.conf e i file per singolo sito in /etc/apache2/sites-available/. Su RHEL/CentOS/AlmaLinux/Rocky, controlla /etc/httpd/conf/httpd.conf e /etc/httpd/conf.d/ssl.conf.
SSLCertificateFile punta al certificato del tuo server. Da Apache 2.4.8, lo stesso file può contenere anche i certificati intermedi, servendo così l’intera catena. SSLCertificateChainFile era il vecchio modo per fornire questi intermedi separatamente, ma è stato deprecato a partire da Apache 2.4.8. Su qualsiasi server moderno, inserisci il certificato e gli intermedi in un unico file e fai riferimento ad esso solo con SSLCertificateFile.
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


