Struttura dei certificati X.509
Esamini i campi di un certificato digitale — soggetto, emittente, periodo di validità, chiave pubblica ed estensioni — e comprenda il significato di ciascuno.
Struttura dei certificati X.509 è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Che cos'è un certificato X.509?
Un certificato X.509 è un documento digitale standardizzato che associa una chiave pubblica a un'identità. Lo standard X.509 (definito nella RFC 5280) specifica il formato, i campi e le estensioni utilizzati nei certificati digitali in tutto il mondo. Ogni certificato TLS/HTTPS, certificato e-mail S/MIME, certificato per la firma del codice e certificato per l'autenticazione client segue il formato X.509. Comprendere la struttura di un certificato X.509 La aiuta a leggere le informazioni del certificato, diagnosticare gli errori dei certificati e prendere decisioni consapevoli sulla distribuzione e sulla convalida dei certificati.
# View an X.509 certificate in human-readable form
openssl x509 -in certificate.pem -noout -text
# Or view a website's certificate directly
openssl s_client -connect example.com:443 2>/dev/null | \
openssl x509 -noout -textVersione, numero di serie e algoritmo
I primi campi di un certificato X.509 ne definiscono l'identità di base. Versione: X.509 v3 è lo standard attuale (la v3 ha aggiunto le estensioni). Numero di serie: un numero intero univoco assegnato dalla CA emittente che identifica questo specifico certificato; viene utilizzato nelle CRL (liste di revoca) per revocare singoli certificati. Algoritmo di firma: specifica l'algoritmo utilizzato dalla CA per firmare il certificato (ad esempio, sha256WithRSAEncryption o ecdsa-with-SHA256). Questo campo compare due volte: una volta nel TBSCertificate e una volta nel wrapper della firma esterna; i due valori devono coincidere.
# Certificate header fields
# Version: 3 (v3 = supports extensions)
# Serial Number:
# 30:4b:7e:bf:36:e3:46:a8
# Signature Algorithm: sha256WithRSAEncryption
# The serial number is used for revocation:
# CRL lists serial numbers of revoked certificates from this CACampi Issuer e Subject
Due dei campi più importanti di un certificato identificano le parti coinvolte. Il campo Issuer identifica la CA che ha firmato il certificato (ad esempio, CN=DigiCert Global CA G2, O=DigiCert Inc, C=US). Il campo Subject identifica l'entità a cui è stato rilasciato il certificato (ad esempio, CN=*.example.com, O=Example Corp, C=US). In un certificato TLS, il Common Name (CN) del Subject o l'estensione Subject Alternative Name (SAN) specifica per quali nomi di dominio è valido il certificato. I browser confrontano il nome host richiesto con questi campi.
# Extract Issuer and Subject
openssl x509 -in cert.pem -noout -subject -issuer
# subject=CN = *.google.com, O = Google LLC, L = Mountain View, ST = California, C = US
# issuer=CN = GTS CA 1C3, O = Google Trust Services LLC, C = US
# Check Subject Alternative Names (critical for hostname validation)
openssl x509 -in cert.pem -noout -ext subjectAltName
# DNS:*.google.com, DNS:google.comPeriodo di validità: notBefore e notAfter
Il periodo di validità definisce quando il certificato è attivo. È composto da due timestamp: notBefore (prima di questa data il certificato non è ancora valido) e notAfter (dopo questa data il certificato è scaduto). I client TLS verificano che l'ora corrente rientri in questo intervallo. I certificati presentati al di fuori del periodo di validità causano un errore del certificato nei browser e devono essere rinnovati. La pratica moderna raccomandata consiste nell'emettere certificati a breve durata (90 giorni, come fa Let's Encrypt) per limitare l'esposizione nel caso in cui una chiave privata venga compromessa tra l'emissione e la scadenza.
# Check certificate expiry dates
openssl x509 -in cert.pem -noout -dates
# notBefore=Jan 1 00:00:00 2026 GMT
# notAfter=Mar 31 23:59:59 2026 GMT
# Check how many days until expiry
echo | openssl s_client -connect example.com:443 2>/dev/null | \
openssl x509 -noout -enddate
# notAfter=Jun 15 12:00:00 2026 GMTCampo della chiave pubblica
Il contenuto principale del certificato è il campo Subject Public Key Info, che contiene la chiave pubblica certificata e specifica l'algoritmo con cui viene utilizzata. In un certificato RSA, questo campo contiene il modulo e l'esponente della chiave pubblica RSA, insieme alla relativa lunghezza in bit (2048, 4096). In un certificato ECC, contiene il nome della curva (ad esempio, prime256v1) e il punto della chiave pubblica. La CA non genera questa coppia di chiavi: il richiedente del certificato genera la propria coppia di chiavi e invia solo la chiave pubblica in una Certificate Signing Request (CSR).
# Generate a key pair and CSR (Certificate Signing Request)
# First, generate the private key
openssl genrsa -out server.key 2048
# Create a CSR containing the public key and subject info
openssl req -new -key server.key -out server.csr \
-subj '/CN=www.example.com/O=Example Corp/C=US'
# The CSR is sent to the CA for signing
# The CA returns the signed X.509 certificate
# Private key NEVER leaves your possessionEstensioni X.509 v3
X.509 v3 ha introdotto le estensioni, che ampliano notevolmente le funzionalità dei certificati. Le estensioni possono essere critical (un client che non è in grado di elaborarle deve rifiutare il certificato) oppure non-critical (possono essere ignorate se non vengono comprese). Le estensioni principali includono: Subject Alternative Name (SAN) — ulteriori nomi di dominio o indirizzi IP coperti dal certificato; Key Usage — limita le operazioni per cui è possibile utilizzare la chiave (firma digitale, cifratura delle chiavi); Extended Key Usage — limita ulteriormente lo scopo (autenticazione del server TLS, autenticazione del client, firma del codice); e Basic Constraints — indica se il Subject è una CA.
# View X.509 v3 extensions
openssl x509 -in cert.pem -noout -text | grep -A 20 'X509v3 extensions'
# X509v3 Key Usage: critical
# Digital Signature, Key Encipherment
# X509v3 Extended Key Usage:
# TLS Web Server Authentication, TLS Web Client Authentication
# X509v3 Subject Alternative Name:
# DNS:example.com, DNS:www.example.com
# X509v3 Basic Constraints: critical
# CA:FALSESubject Alternative Name (SAN) e Common Name
Storicamente, il campo Common Name (CN) nel campo Subject distinguished veniva utilizzato per il nome di dominio principale. I certificati moderni utilizzano invece i Subject Alternative Names (SAN), poiché i browser hanno deprecato la corrispondenza basata sul CN (RFC 2818) a favore dei SAN. I SAN consentono a un singolo certificato di coprire più domini (certificati multi-SAN) o tutti i sottodomini di un dominio (certificati wildcard: *.example.com). I wildcard nei SAN coprono un solo livello: *.example.com copre www.example.com, ma non sub.www.example.com.
Punto di distribuzione CRL ed estensione OCSP
Due estensioni fondamentali indicano ai client come verificare se un certificato è stato revocato prima della data di scadenza. CRL Distribution Points (CDP): contiene gli URL da cui è possibile scaricare la Certificate Revocation List della CA. Authority Information Access (AIA): contiene l'URL del responder OCSP (Online Certificate Status Protocol) della CA per la verifica della revoca in tempo reale. I client moderni preferiscono OCSP al download delle CRL, perché le CRL possono essere file di grandi dimensioni. La firma digitale della CA sulle risposte OCSP garantisce che i client ricevano informazioni autentiche sullo stato di revoca.
# Check OCSP status of a certificate
openssl ocsp -issuer intermediate_ca.pem \
-cert server_cert.pem \
-url http://ocsp.digicert.com \
-text
# Response shows: good, revoked, or unknown
# server_cert.pem: good
# This Update: Jun 21 00:00:00 2026 GMTFormati dei certificati: PEM, DER, PFX
I certificati X.509 sono disponibili in diversi formati di codifica che potrà incontrare nella pratica. PEM (Privacy Enhanced Mail): DER codificato in base64 e racchiuso nelle intestazioni -----BEGIN CERTIFICATE-----. È leggibile e viene utilizzato su Linux/Apache/nginx. DER (Distinguished Encoding Rules): formato binario. Viene utilizzato nelle applicazioni Java e in alcuni contesti Windows. PFX/PKCS#12: formato contenitore che riunisce certificato, catena e chiave privata in un unico file protetto da password. Viene utilizzato in Windows IIS e durante l'esportazione dei certificati insieme alle relative chiavi private. P7B/PKCS#7: contiene solo la catena di certificati, senza chiave privata, e viene utilizzato negli archivi certificati di Windows.
# Convert between certificate formats
# PEM to DER
openssl x509 -in cert.pem -outform DER -out cert.der
# DER to PEM
openssl x509 -in cert.der -inform DER -outform PEM -out cert.pem
# Export certificate + private key to PFX (for Windows IIS)
openssl pkcs12 -export -in cert.pem -inkey private.key \
-certfile chain.pem -out cert.pfx -passout pass:ExportPasswordCertificate Transparency (log CT)
Certificate Transparency (CT) è un framework che impone alle CA di registrare tutti i certificati emessi in log verificabili pubblicamente. Ciò consente a chiunque di monitorare la presenza di certificati non autorizzati emessi per i propri domini. Chrome e Safari richiedono che i certificati TLS siano inclusi nei log CT. SCT (Signed Certificate Timestamp) è la prova dell'inclusione nel log, incorporata nel certificato o fornita tramite un'estensione TLS. I log CT rendono rapidamente visibili le emissioni errate: se una CA emette per errore un certificato per il Suo dominio, lo vedrà in log come crt.sh prima che gli aggressori possano abusarne.
# Search for all certificates issued for a domain using crt.sh
# This would be done via browser or API:
# https://crt.sh/?q=example.com
# Check CT log inclusion in a certificate
openssl x509 -in cert.pem -noout -text | grep -A 5 'CT Precertificate'
# X509v3 extension: CT Precertificate SCTs (critical)
# Signed Certificate Timestamp:
# Version: v1 (0x0)
# Log ID: A4:B9...Firma della CA sul certificato
L'ultimo componente di un certificato X.509 è la firma digitale della CA. La CA calcola l'hash di tutti i dati del certificato (TBSCertificate) e firma tale hash con la propria chiave privata. Questa firma è ciò che rende attendibile il certificato: chiunque può verificarla utilizzando la chiave pubblica della CA (presente nel certificato della CA stessa). L'algoritmo di firma utilizzato (elencato nel campo della firma) deve corrispondere a quello specificato in precedenza nel certificato. Qualsiasi modifica apportata al certificato dopo la firma invalida la firma stessa, garantendo l'integrità del certificato.
# Verify that a certificate was signed by a specific CA
openssl verify -CAfile ca_chain.pem server_cert.pem
# server_cert.pem: OK
# If the signature is invalid or the chain is broken:
# server_cert.pem: C = US, O = Example, CN = www.example.com
# error 20 at 0 depth lookup: unable to get local issuer certificateVerifica rapida
Verifichi la Sua comprensione dei concetti di CompTIA Security+ (SY0-701) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha appreso che un certificato X.509 contiene versione, numero di serie, issuer, subject, periodo di validità, chiave pubblica ed estensioni v3; l'estensione SAN controlla quali nomi host copre il certificato; le estensioni CDP e AIA indicano gli endpoint per la verifica della revoca; inoltre, i log CT forniscono registri di audit pubblici delle emissioni dei certificati. Nella prossima sezione esamineremo il ciclo di vita e la revoca dei certificati.
Domande Frequenti
La lezione «Struttura dei certificati X.509» è gratuita?
Sì — il testo completo di «Struttura dei certificati X.509» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Cosa imparerò in «Struttura dei certificati X.509»?
Esamini i campi di un certificato digitale — soggetto, emittente, periodo di validità, chiave pubblica ed estensioni — e comprenda il significato di ciascuno. Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?
Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Struttura dei certificati X.509»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?
Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Autorità di certificazione e catene di fiducia
- Struttura dei certificati X.509
- Ciclo di vita e revoca dei certificati
- Casi d’uso della PKI: HTTPS, S/MIME e firma del codice