Certificato X.509

Indice dei contenuti

    Un certificato X.509 è un documento digitale standardizzato (ITU-T X.509, RFC 5280) che lega una chiave pubblica all’identità del suo titolare mediante la firma digitale di un’autorità di certificazione (CA). È il meccanismo con cui il protocollo TLS autentica i server web, e più in generale con cui la PKI garantisce l’autenticità delle chiavi pubbliche.

    Struttura del certificato

    Un certificato X.509 v3 contiene i seguenti campi principali:

    CampoContenuto
    VersionVersione dello standard (v1, v2, v3)
    Serial NumberIdentificatore univoco assegnato dalla CA
    IssuerNome distinto (DN) della CA che ha emesso il certificato
    ValidityPeriodo di validità: Not Before e Not After
    SubjectNome distinto del titolare (es. CN=www.esempio.it, O=Azienda, C=IT)
    Subject Public Key InfoLa chiave pubblica del titolare + algoritmo
    ExtensionsCampi opzionali: uso della chiave, SAN, vincoli di base…
    SignatureFirma della CA su tutti i campi precedenti

    La firma della CA è il cuore della fiducia: garantisce che nessun campo sia stato alterato dopo l’emissione e che la CA abbia verificato l’identità del titolare prima di firmare.

    Livelli di validazione

    Le CA pubbliche emettono certificati con diversi livelli di verifica dell’identità:

    • DV (Domain Validation): la CA verifica solo che il richiedente controlli il dominio (via DNS o file HTTP). Automatizzabile (Let’s Encrypt). Nessuna informazione sull’organizzazione.
    • OV (Organization Validation): la CA verifica anche l’esistenza legale dell’organizzazione. Il campo O= nel Subject è compilato.
    • EV (Extended Validation): verifica più approfondita dell’identità aziendale. Storicamente mostrava la barra verde nel browser, oggi deprecata visivamente da Chrome e Firefox.

    Estensioni critiche

    Le estensioni X.509 v3 arricchiscono il certificato con vincoli e metadati:

    • Subject Alternative Names (SAN): lista di domini e IP aggiuntivi coperti dal certificato (sostituisce il campo CN per i certificati multi-dominio e wildcard).
    • Key Usage: restringe l’uso della chiave (firma digitale, cifratura chiave, firma certificato…).
    • Extended Key Usage: specifica l’applicazione (TLS server, TLS client, firma codice, S/MIME…).
    • Basic Constraints: indica se il certificato è una CA (e il massimo livello di gerarchia consentito).
    • CRL Distribution Points e Authority Information Access: URL per la verifica della revoca.

    Formato e codifica

    I certificati X.509 sono codificati in ASN.1 (Abstract Syntax Notation One). Le codifiche più comuni sono:

    • DER (Distinguished Encoding Rules): binario. Usato internamente e nei sistemi Windows.
    • PEM (Privacy-Enhanced Mail): DER codificato in Base64 con intestazioni -----BEGIN CERTIFICATE-----. Il formato testuale più diffuso.

    Il comando openssl x509 -in cert.pem -text -noout mostra il contenuto leggibile di un certificato PEM.

    Ultimo aggiornamento: