bg-tutorials

Come installare un certificato SSL su Apache

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?

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:

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

Cos’e’ SSL in Apache?

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.

Come faccio a sapere se SSL di Apache e’ abilitato?

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

Dove si trova il file SSL .conf in Apache?

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.

Qual e’ la differenza tra SSLCertificateFile e SSLCertificateChainFile?

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

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.