In questa guida imparerai come installare un certificato SSL su Apache, passo dopo passo. Le istruzioni si applicano ad Apache 2.4, l’attuale linea di rilascio stabile.
Indice dei contenuti
- 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?
Il Certificate Signing Request, o semplicemente CSR, e’ un piccolo file di testo contenente informazioni sulla proprieta’ del tuo dominio e/o della tua azienda. Generare un CSR e’ 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 il CSR automaticamente utilizzando il nostro CSR Generator.
- Segui il nostro tutorial passo dopo passo su come creare il CSR su Apache.
Installare un certificato SSL su Apache
Dopo che la Certificate Authority ha firmato e ti ha inviato il certificato SSL, puoi installarlo in modo sicuro sul tuo server Apache. Segui i passaggi indicati di seguito.
Passaggio 1: Prepara i file del certificato
Scarica ed estrai i file dalla cartella ZIP ricevuta dalla tua Certificate Authority. In genere 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 e’ necessaria affinche’ i browser e le applicazioni possano verificare il tuo certificato. Senza di essa, alcuni client potrebbero segnalare il tuo sito come non sicuro.
Carica questi file, insieme alla chiave privata (.key) generata insieme al tuo 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 CA bundle in un unico file “full chain”. Da Apache 2.4.8, la direttiva SSLCertificateFile carica i certificati intermedi direttamente da questo file, motivo per cui la vecchia direttiva SSLCertificateChainFile non e’ piu’ necessaria:
cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt
Se la tua CA ha consegnato i certificati intermedi come file separati, concatenali con il tuo certificato prima, seguiti dagli intermedi ordinati da quello che ha firmato il tuo certificato fino al root (il certificato root stesso e’ opzionale):
cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt
Ad esempio, quando si installa un certificato Sectigo PositiveSSL, dovresti concatenare il tuo certificato di dominio con il bundle intermedio di Sectigo. Utilizza sempre i nomi di file esatti forniti dalla tua CA.
Passaggio 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, necessario per l’header HSTS nel Passaggio 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
Passaggio 3: Individua il file di configurazione di Apache
A seconda del sistema operativo e della versione di Apache, la configurazione puo’ trovarsi 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 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 e’ in esecuzione su Ubuntu, puoi anche seguire le nostre istruzioni dedicate all’installazione SSL per Ubuntu.
Passaggio 4: Configura il virtual host
Prima di tutto, esegui un backup del tuo file di configurazione attuale. In questo modo, se qualcosa va storto, puoi ripristinare rapidamente le modifiche:
sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup
Ora apri il file di configurazione e configura il virtual host HTTPS (porta 443). Un virtual host completo e moderno si presenta cosi’:
<VirtualHost *:443>
ServerName www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example
SSLEngine on
# Apache 2.4.8+ : server certificate + intermediate chain in ONE file
SSLCertificateFile /etc/ssl/example_com_fullchain.crt
SSLCertificateKeyFile /etc/ssl/example_com.key
# Recommended TLS hardening (2026)
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder off
# Tell browsers to always use HTTPS (enable only after HTTPS works)
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 principali:
- SSLEngine on – abilita SSL/TLS per questo virtual host.
- SSLCertificateFile – percorso al tuo file full-chain (certificato + intermedi) creato nel Passaggio 1. Su Apache 2.4.8+ questa singola direttiva sostituisce la deprecata SSLCertificateChainFile.
- SSLCertificateKeyFile – percorso alla tua chiave privata, generata insieme al 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 Passaggio 2). Attivalo solo dopo aver confermato che HTTPS funziona correttamente.
Assicurati che nessuna di queste righe inizi con # (il che le commenterebbe). Su Debian/Ubuntu, ${APACHE_LOG_DIR} si risolve in /var/log/apache2; sui sistemi basati su RHEL usa invece /var/log/httpd/.
Server legacy: 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, l’approccio full-chain descritto sopra e’ preferibile.
Hardening avanzato (opzionale): per una suite di cifratura piu’ robusta e lo stapling OCSP, genera una configurazione personalizzata con il Mozilla SSL Configuration Generator. Lo stapling OCSP richiede anche una direttiva SSLStaplingCache nella tua configurazione globale di Apache.
Passaggio 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 reindirizza in modo permanente tutto il traffico HTTP a HTTPS:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
Passaggio 6: Testa la configurazione e riavvia Apache
Testa sempre la configurazione prima di riavviare. Un errore di sintassi puo’ mettere offline il tuo sito, quindi esegui:
sudo apachectl configtest
Se tutto e’ corretto, vedrai:
Syntax OK
Ora applica le modifiche ricaricando Apache (un reload 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 reload non e’ sufficiente, riavvia il servizio (sudo systemctl restart apache2 o httpd). Sui sistemi piu’ vecchi senza systemd, usa sudo apachectl graceful.
Se l’installazione e’ andata a buon fine, congratulazioni! Il tuo sito web e’ 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 immediata rivelera’ eventuali errori o vulnerabilita’ che potrebbero influire sulle prestazioni del tuo certificato. Usa il nostro SSL Checker tool per verificare 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 e’ SSL Dragon. Offriamo prezzi e sconti imbattibili su tutta la nostra gamma di prodotti SSL, e abbiamo selezionato con cura i migliori brand SSL sul mercato per dotare il tuo sito web di una protezione a prova di bomba. Tutti i nostri certificati SSL sono compatibili con Apache. Ottieni subito un certificato SSL!
Tieni presente che la durata dei certificati SSL/TLS si sta riducendo: la validita’ massima scende a 200 giorni a marzo 2026, a 100 giorni nel 2027 e a soli 47 giorni entro il 2029. Cicli di vita piu’ brevi significano rinnovi piu’ frequenti, quindi vale la pena pianificare in anticipo il processo di rinnovo (e l’automazione).
Domande frequenti
SSL (Secure Sockets Layer), ora sostituito da TLS (Transport Layer Security), e’ 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 e’ configurato, vedrai un output simile a:/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3
Puoi anche confermare che il modulo SSL e’ caricato nel server in esecuzione:apachectl -M | grep ssl
Il file di configurazione puo’ trovarsi in posizioni diverse a seconda del sistema operativo e della configurazione. Su Debian/Ubuntu, controlla /etc/apache2/apache2.conf e i file per 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 tuo certificato server. Da Apache 2.4.8, lo stesso file puo’ contenere anche i certificati intermedi, servendo cosi’ la catena completa. SSLCertificateChainFile era il vecchio metodo per fornire quegli intermedi separatamente, ma e’ stato deprecato 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


