Cloud & IT Cert Prep · Oppitunti

X.509-varmenteen rakenne

Tutkikaa digitaalisen varmenteen kenttiä — kohdetta, myöntäjää, voimassaoloaikaa, julkista avainta ja laajennuksia — ja ymmärtäkää, mitä kukin niistä tarkoittaa.

Oppitunti 2/413 vaihetta

X.509-varmenteen rakenne on ilmainen Cloud & IT Cert Prep-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cloud & IT Cert Prep-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.

Mikä on X.509-varmenne?

X.509-varmenne on standardoitu digitaalinen asiakirja, joka yhdistää julkisen avaimen identiteettiin. X.509-standardi (määritelty RFC 5280:ssa) määrittää digitaalisten varmenteiden maailmanlaajuisesti käyttämän muodon, kentät ja laajennukset. Jokainen TLS/HTTPS-varmenne, S/MIME-sähköpostivarmenne, koodin allekirjoitusvarmenne ja asiakkaan todentamiseen käytettävä varmenne noudattaa X.509-muotoa. X.509-varmenteen rakenteen ymmärtäminen auttaa lukemaan varmenteiden tietoja, selvittämään varm ennevirheitä ja tekemään perusteltuja päätöksiä varmenteiden käyttöönotosta ja validoinnista.

# 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 -text

Versio, sarjanumero ja algoritmi

X.509-varmenteen ensimmäiset kentät määrittävät sen perustiedot. Versio: X.509 v3 on nykyinen standardi (v3 toi käyttöön laajennukset). Sarjanumero: varmenteen myöntävä CA antaa yksilöllisen kokonaisluvun, joka tunnistaa kyseisen varmenteen. Sitä käytetään CRL:issä (peruutusluetteloissa) yksittäisten varmenteiden peruuttamiseen. Allekirjoitusalgoritmi: määrittää algoritmin, jolla CA allekirjoittaa varmenteen (esimerkiksi sha256WithRSAEncryption tai ecdsa-with-SHA256). Tämä kenttä esiintyy kahdesti: kerran TBSCertificate-rakenteessa ja kerran ulommassa allekirjoituskehyksessä. Niiden on vastattava toisiaan.

# 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 CA

Myöntäjä- ja kohdekentät

Kaksi varmenteen tärkeimmistä kentistä määrittää siihen liittyvät osapuolet. Issuer-kenttä tunnistaa varmenteen allekirjoittaneen CA:n (esimerkiksi CN=DigiCert Global CA G2, O=DigiCert Inc, C=US). Subject-kenttä tunnistaa entiteetin, jolle varmenne myönnettiin (esimerkiksi CN=*.example.com, O=Example Corp, C=US). TLS-varmenteessa kohteen Common Name (CN) -kenttä tai Subject Alternative Name (SAN) -laajennus määrittää, mille verkkotunnuksille varmenne kelpaa. Selaimet vertaavat pyydettyä isäntänimeä näihin kenttiin.

# 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.com

Voimassaoloaika: notBefore ja notAfter

Voimassaoloaika määrittää, milloin varmenne on voimassa. Se koostuu kahdesta aikaleimasta: notBefore (varmenne ei ole voimassa ennen tätä päivämäärää) ja notAfter (varmenne on vanhentunut tämän päivämäärän jälkeen). TLS-asiakkaat tarkistavat, että nykyinen aika osuu tähän aikaväliin. Voimassaoloajan ulkopuolella esitetyt varmenteet aiheuttavat selaimissa varm ennevirheen, ja ne on uusittava. Nykyisen parhaan käytännön mukaan varmenteet kannattaa myöntää lyhytkestoisina (90 päivää, kuten Let's Encrypt tekee), jotta yksityisen avaimen vaarantumisen aiheuttama riski voidaan rajata myöntämisen ja vanhentumisen välisenä aikana.

# 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 GMT

Julkisen avaimen kenttä

Varmenteen keskeinen sisältö on Subject Public Key Info -kenttä, joka sisältää varmennettavan julkisen avaimen ja määrittää algoritmin, jonka kanssa sitä käytetään. RSA-varmenteessa tämä kenttä sisältää RSA-julkisen avaimen moduulin ja eksponentin sekä avaimen bittipituuden (2048, 4096). ECC-varmenteessa se sisältää käyrän nimen (esimerkiksi prime256v1) ja julkisen avainpisteen. CA ei luo tätä avainparia, vaan varmenteen pyytäjä luo oman avainparinsa ja lähettää Certificate Signing Request (CSR) -pyynnössä ainoastaan julkisen avaimen.

# 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 possession

X.509 v3 -laajennukset

X.509 v3 toi käyttöön laajennukset, jotka laajentavat merkittävästi varmenteiden ominaisuuksia. Laajennukset voivat olla kriittisiä (asiakkaan on hylättävä varmenne, jos se ei pysty käsittelemään laajennusta) tai ei-kriittisiä (laajennuksen voi ohittaa, jos sitä ei tunneta). Tärkeitä laajennuksia ovat: Subject Alternative Name (SAN) — varmenteen kattamat ylimääräiset verkkotunnukset tai IP-osoitteet; Key Usage — rajoittaa, mihin toimintoihin avainta voidaan käyttää (digitaalinen allekirjoitus, avaimen salaus); Extended Key Usage — rajoittaa käyttötarkoitusta edelleen (TLS-palvelimen todentaminen, asiakkaan todentaminen, koodin allekirjoitus); sekä Basic Constraints — ilmaisee, onko kohde 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:FALSE

Subject Alternative Name (SAN) ja Common Name

Aiemmin Subject-kentän Common Name (CN) -kenttää käytettiin ensisijaisen verkkotunnuksen määrittämiseen. Nykyaikaisissa varmenteissa käytetään sen sijaan Subject Alternative Name (SAN) -nimiä, koska selaimet ovat poistaneet käytöstä CN:ään perustuvan vastaavuustarkistuksen (RFC 2818) ja siirtyneet käyttämään SAN-nimiä. SAN-nimien avulla yksi varmenne voi kattaa useita verkkotunnuksia (multi-SAN-varmenteet) tai verkkotunnuksen kaikki aliverkkotunnukset (wildcard-varmenteet: *.example.com). SAN-wildcardit kattavat vain yhden tason: *.example.com kattaa verkkotunnuksen www.example.com mutta ei verkkotunnusta sub.www.example.com.

CRL Distribution Point- ja OCSP-laajennus

Kaksi tärkeää laajennusta kertoo asiakkaille, miten tarkistetaan, onko varmenne peruutettu ennen sen vanhenemispäivää. CRL Distribution Points (CDP): sisältää URL-osoitteet, joista CA:n Certificate Revocation List -luettelo voidaan ladata. Authority Information Access (AIA): sisältää CA:n OCSP (Online Certificate Status Protocol) -vastaanottajan URL-osoitteen reaaliaikaista peruutustarkistusta varten. Nykyaikaiset asiakkaat suosivat OCSP:tä CRL-latausten sijaan, koska CRL:t voivat olla suuria tiedostoja. CA:n digitaalinen allekirjoitus OCSP-vastauksissa varmistaa, että asiakkaat saavat aidot tiedot varmenteen peruutustilasta.

# 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 GMT

Varmennemuodot: PEM, DER, PFX

X.509-varmenteita on useissa käytännössä vastaan tulevissa koodausmuodoissa. PEM (Privacy Enhanced Mail): base64-koodattua DER-muotoa, jonka ympärillä ovat -----BEGIN CERTIFICATE------otsakkeet. Ihmisen luettavissa, käytetään Linuxissa, Apachessa ja nginxissä. DER (Distinguished Encoding Rules): binäärimuoto. Käytetään Java-sovelluksissa ja joissakin Windows-ympäristöissä. PFX/PKCS#12: säilömuoto, joka pakkaa varmenteen, sen ketjun ja yksityisen avaimen yhteen salasanalla suojattuun tiedostoon. Käytetään Windows IIS:ssä ja vietäessä varmenteita yksityisine avaimineen. P7B/PKCS#7: sisältää vain varmenneketjun, ei yksityistä avainta, ja sitä käytetään Windowsin varmennevarastoissa.

# 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:ExportPassword

Certificate Transparency (CT-lokit)

Certificate Transparency (CT) on viitekehys, joka edellyttää CA:ita kirjaamaan kaikki myöntämänsä varmenteet julkisesti tarkastettaviin lokeihin. Näin kuka tahansa voi valvoa verkkotunnuksilleen luvatta myönnettyjä varmenteita. Chrome ja Safari edellyttävät TLS-varmenteilta CT-lokeihin kirjaamista. SCT (Signed Certificate Timestamp) on todiste lokiin kirjaamisesta, ja se upotetaan varmenteeseen tai toimitetaan TLS-laajennuksen kautta. CT-lokit paljastavat virheelliset myöntämiset nopeasti: jos CA myöntää verkkotunnuksellenne virheellisesti varmenteen, näette sen crt.sh-palvelun kaltaisissa lokeissa, ennen kuin hyökkääjät ehtivät käyttää sitä hyväkseen.

# 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...

CA:n allekirjoitus varmenteessa

X.509-varmenteen viimeinen osa on CA:n digitaalinen allekirjoitus. CA laskee kaikkien varmenteen tietojen (TBSCertificate) tiivisteen ja allekirjoittaa tiivisteen omalla yksityisellä avaimellaan. Tämä allekirjoitus tekee varmenteesta luotettavan: kuka tahansa voi tarkistaa sen CA:n julkisella avaimella, joka löytyy CA:n omasta varmenteesta. Käytetyn allekirjoitusalgoritmin (joka ilmoitetaan allekirjoituskentässä) on vastattava varmenteen aiemmassa kohdassa määritettyä algoritmia. Kaikki varmenteen allekirjoittamisen jälkeiset muutokset mitätöivät allekirjoituksen ja varmistavat siten varmenteen eheyden.

# 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 certificate

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte tällä oppitunnilla käsitellyt CompTIA Security+ (SY0-701) -käsitteet.

Oppitunnin yhteenveto

Tällä oppitunnilla opitte, että X.509-varmenne sisältää version, sarjanumeron, myöntäjän, kohteen, voimassaoloajan, julkisen avaimen ja v3-laajennukset; SAN-laajennus määrittää, mitkä isäntänimet varmenne kattaa; CDP- ja AIA-laajennukset osoittavat peruutustarkistuksen päätepisteisiin; ja CT-lokit tarjoavat julkisesti tarkastettavan jäljityksen varmenteiden myöntämisestä. Seuraavaksi tutustumme aiheeseen varmenteen elinkaari ja peruuttaminen.

Aloita maksutta

Opi Cloud & IT Cert Prep tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
150
Oppitunnit
600

Usein kysytyt kysymykset

Onko oppitunti ”X.509-varmenteen rakenne” ilmainen?

Kyllä – oppitunnin ”X.509-varmenteen rakenne” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cloud & IT Cert Prep-kurssin, päivitä CoddyKit PROhon. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”X.509-varmenteen rakenne”?

Tutkikaa digitaalisen varmenteen kenttiä — kohdetta, myöntäjää, voimassaoloaikaa, julkista avainta ja laajennuksia — ja ymmärtäkää, mitä kukin niistä tarkoittaa. Harjoittelet Cloud & IT Cert Prep-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cloud & IT Cert Prep-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Cloud & IT Cert Prep-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”X.509-varmenteen rakenne”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Cloud & IT Cert Prep-oppitunnilla?

Kyllä. Jokainen Cloud & IT Cert Prep-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Varmentajat ja luottamusketjut
  2. X.509-varmenteen rakenne
  3. Varmenteen elinkaari ja peruuttaminen
  4. PKI:n käyttötapaukset: HTTPS, S/MIME ja koodin allekirjoitus
← Takaisin: Cloud & IT Cert Prep