Audit SSL/TLS su Linux: la guida completa

SSL/TLS openssl HSTS

Un SSL configurato male costa più del rinnovo di un certificato. Certificati scaduti, cifrari deboli, HSTS assente: sono problemi che minano la fiducia in silenzio e fanno comparire gli avvisi del browser nel momento peggiore.

Questa guida spiega come fare l'audit SSL/TLS da riga di comando su qualsiasi server Linux e come automatizzarlo, così non ti sfugge più nessun errore di configurazione.

Il metodo manuale: openssl + curl

Controllare la scadenza del certificato

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
  | openssl x509 -noout -dates

Output:

notBefore=Jan 13 00:00:00 2025 GMT
notAfter=Feb 12 23:59:59 2026 GMT

Controllare la catena dei certificati completa

echo | openssl s_client -connect example.com:443 -servername example.com -showcerts 2>/dev/null

Cerca:

L'intermedio mancante è il problema più comune. I browser possono colmare il vuoto, ma i client API e curl no.

Controllare le versioni TLS supportate

# Prova TLS 1.0 (deve fallire su un server configurato bene)
openssl s_client -connect example.com:443 -tls1 2>&1 | head -5

# Prova TLS 1.2
openssl s_client -connect example.com:443 -tls1_2 2>&1 | head -5

# Prova TLS 1.3
openssl s_client -connect example.com:443 -tls1_3 2>&1 | head -5

Se TLS 1.0 o 1.1 riescono, il server accetta protocolli deprecati.

Controllare le cipher suite

nmap --script ssl-enum-ciphers -p 443 example.com

Fai attenzione a:

Controllare l'header HSTS

curl -sI https://example.com | grep -i strict-transport

Risultato atteso:

strict-transport-security: max-age=31536000; includeSubDomains; preload

Senza HSTS i browser non impongono HTTPS dopo la prima visita.

Controllare l'OCSP stapling

echo | openssl s_client -connect example.com:443 -status 2>/dev/null \
  | grep -A 5 "OCSP Response"

Se vedi OCSP Response Status: successful, lo stapling funziona. Altrimenti il browser deve contattare la CA a ogni connessione. È più lento e fa trapelare dati sulla navigazione.

Il limite dei controlli manuali

Ognuno di questi comandi controlla una sola cosa. Un audit SSL serio li richiede tutti, più la verifica del redirect da HTTP a HTTPS, la validazione della catena dei certificati, un punteggio sulla robustezza dei cifrari, il confronto con la HSTS preload list e un voto complessivo di sicurezza.

A mano ci vogliono 10-15 minuti per dominio. Con 20 server è mezza giornata.

Il metodo automatico: NetForge

Un comando, report completo:

netforge ssl example.com

Output:

NetForge SSL/TLS -> example.com

  i  TLS 1.2, TLS 1.3
  ok Certificate valid - expires in 287 days
  ok Full chain present (3 certificates)
  ok HSTS enabled (max-age=31536000)
  ok HSTS Preload: in preload list
  ok OCSP Stapling: active
  !  TLS 1.2 still enabled (consider TLS 1.3 only)
  ok No weak ciphers detected

  Score: 92/100 - low risk

Cosa controlla in un solo passaggio:

Output JSON per gli script

netforge ssl example.com --json | jq '.score, .grade'

Passalo al monitoraggio, agli avvisi su Slack o alle pipeline CI/CD.

Audit completo: SSL e tutto il resto

netforge audit example.com

Esegue SSL, DNS, header, posta (SPF/DKIM/DMARC), port scan, sicurezza dei cookie, CSP, CORS, clickjacking, open redirect e path probe. Un solo comando, con un punteggio pesato su tutti i moduli.

Correggere quello che trovi

NetForge include un SSL Config Generator che produce configurazioni rafforzate per nginx, Apache, HAProxy e Lighttpd, basate sulle linee guida SSL di Mozilla.

Scegli Modern (solo TLS 1.3) o Intermediate (TLS 1.2 + 1.3) e ottieni un file di configurazione pronto all'uso, con i cifrari giusti, gli header HSTS e l'OCSP stapling già impostati.

Prova NetForge

Audit SSL completo con un solo comando. Niente cloud, niente account, gira sulla tua macchina.

Scopri NetForge