X.509 – standard för digitala certifikat, PKI och TLS
Lär dig allt om X.509: standarden för digitala certifikat, PKI och TLS—hur certifikat, återkallelser och validering säkrar webb- och e-postkommunikation.
Inom kryptografi är X.509 en vedertagen standard för Public Key Infrastructure (PKI) som används för att skapa, utbyta och validera digitala certifikat. X.509 specificerar hur certifikat för offentliga nycklar, förteckningar över återkallade certifikat (CRL), attributcertifikat samt algoritmer och procedurer för validering av certifikatskedjor formateras. X.509 spelar en central roll i protokoll som Transport Layer Security (TLS) för att säkra webb-, e‑post- och andra internetbaserade kommunikationer.
Vad är ett X.509-certifikat?
Ett X.509-certifikat binder en offentlig nyckel till en identifierbar enhet (t.ex. en server eller person) och är signerat av en betrodd utfärdare — en Certificate Authority (CA). Certifikatet fungerar som ett digitalt ID och innehåller information som används för att validera identitet och upprätta krypterade kanaler.
Vanliga fält i ett X.509-certifikat
- Version: X.509 har versionerna v1–v3; v3 möjliggör utbyggnad via tillägg (extensions).
- Serienummer: Unikt nummer utfärdat av CA.
- Signaturalgoritm: Algoritm CA använde för att signera certifikatet (t.ex. SHA256withRSA).
- Utfärdare (Issuer): Den CA som signerat certifikatet.
- Ägare (Subject): Den enhet certifikatet gäller för (t.ex. domännamn).
- Offentlig nyckel: Nyckeln som kopplas till subjektet (RSA, ECDSA m.fl.).
- Giltighetstid: Start- och slutdatum för certifikatets giltighet.
- Tillägg (extensions): Extra metadata som påverkar användning och validering (se nedan).
- Signatur: CA:s digitala signatur över certifikatets data.
X.509 v3-tillägg (extensions)
Tillägg ger flexibilitet och styr hur certifikatet får användas. Vanliga tillägg:
- Subject Alternative Name (SAN): Anger alternativa identifierare (flera domäner, IP-adresser, e‑postadresser).
- Basic Constraints: Anger om certifikatet är en CA och maximal path length.
- Key Usage: Anger tekniska begränsningar (signera, kryptera, certifikatutfärdande).
- Extended Key Usage (EKU): Specificerar avsedda applikationer (t.ex. TLS serverauth, clientauth, codeSigning).
- CRL Distribution Points: Var CRL kan hämtas.
- Authority Information Access (AIA): Inkluderar t.ex. OCSP-serveradress för statuskontroll.
PKI, certifikatkedjor och förtroende
En certifikatkedja (chain) består av ett slutcertifikat (t.ex. en webbservers certifikat), noll eller flera mellanliggande CA-certifikat och ett rotscertifikat (trust anchor). Webbläsare och operativsystem innehåller ett antal förinstallerade rotcertifikat som utgör grund för förtroende. Valideringsprocessen kontrollerar bland annat:
- Att kedjan kan byggas upp till ett betrott rotcertifikat.
- Att varje certifikat i kedjan är korrekt signerat av nästa utfärdare.
- Att certifikaten inte har gått ut (giltighetstid).
- Att certifikatet matchar den förväntade identiteten (t.ex. domännamn via SAN).
- Att certifikatet inte återkallats (CRL/OCSP).
Återkallelse: CRL, OCSP och stapling
- CRL (Certificate Revocation List): En signerad lista med återkallade certifikat som publiceras av CA.
- OCSP (Online Certificate Status Protocol): Ger möjlighet att kontrollera ett certifikats status i realtid.
- OCSP stapling: Servern vidarebefordrar en nyligen hämtad OCSP‑svar till klienten för effektivare och mer privat kontroll.
Problemet med återkallelse är ofta latens, tillgänglighet och att klienter ibland inte genomför kontrollen strikt (”soft‑fail”), vilket kan ge säkerhetsrisker.
Format och kodning
- ASN.1/DER: Struktur- och binär kodning för X.509.
- PEM: Base64-kodad DER innesluten mellan "-----BEGIN CERTIFICATE-----" och "-----END CERTIFICATE-----".
- PKCS#12 / .pfx: Binär container för certifikat + privat nyckel (krypterad).
Användningsområden
- TLS/HTTPS: Kryptering och autentisering av webbtrafik.
- S/MIME: E‑postkryptering och signering.
- Kodsignering: Signera programvara för att garantera integritet och ursprung.
- VPN och 802.1X: Autentisering i nätverk.
- Klientcertifikat (mTLS): Tvåvägsautentisering där både server och klient presenterar certifikat.
Säkerhetsaspekter och rekommendationer
- Använd moderna signatur- och hashalgoritmer (t.ex. SHA‑256 eller bättre). SHA‑1 är föråldrat och bör inte användas.
- Använd tillräcklig nyckellängd: RSA ≥ 2048 bitar (helst 3072 eller större för långsiktig säkerhet) eller ECC (t.ex. P‑256/P‑384).
- Begränsa certifikatets användning via Key Usage och Extended Key Usage.
- Ställ in kortare giltighetstider för certifikat och använd automatiserade förnyelsemekanismer (t.ex. ACME/Let’s Encrypt).
- Aktivera OCSP-stapling för TLS-servrar och säkerställ korrekt CRL/OCSP-hantering.
- Övervaka certifikatkedjor och publicera/övervaka Certificate Transparency-loggar för offentliga TLS‑certifikat.
- Hantera privata nycklar säkert (HSM, passfraser, åtkomstkontroll).
Validering i TLS-handshake — kort översikt
- Klienten initierar TLS‑handshake och får serverns certifikat (och ev. mellanliggande certifikat).
- Klienten bygger en kedja upp till en betrodd rot och kontrollerar signaturer.
- Klienten verifierar giltighetstid, namnmatchning (SAN) och eventuellt EKU.
- Klienten kontrollerar återkallelsestatus via OCSP/CRL (eller förlitar sig på stapling).
- Om allt är giltigt fortsätter handshake och sessionens nycklar etableras.
Verktyg och praktiska tips
Ett enkelt sätt att inspektera ett certifikat är att använda OpenSSL, t.ex.: openssl x509 -in cert.pem -text -noout för att visa certifikatets innehåll. Vid felsökning av TLS‑problem är det också bra att kontrollera kedjan, CA‑vertrust (rots certifikat) och OCSP/CRL-respons.
Sammanfattning
X.509 är en grundläggande standard för digitala certifikat och PKI som möjliggör säkra och autentiserade kommunikationskanaler. För korrekt säkerhetsnivå krävs modern kryptografi, noggrann hantering av nycklar och certifikat samt rutiner för återkallelse och övervakning. Genom att förstå certifikatets struktur, certifikatkedjor och relevanta tillägg kan man bättre konfigurera och granska system som använder TLS, S/MIME, kodsignering och andra certifikatberoende tjänster.
Sök