PKI-anvendelser: HTTPS, S/MIME og code signing
Anvend PKI-koncepter i virkelige scenarier: sikring af webtrafik, kryptering af e-mail med S/MIME og verificering af softwares integritet med code-signing-certifikater.
PKI-anvendelser: HTTPS, S/MIME og code signing er en gratis Cloud & IT Cert Prep-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cloud & IT Cert Prep, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
PKI i virkelige anvendelser
Public Key Infrastructure (PKI) er den usynlige grundstruktur for sikker digital kommunikation. De certifikater og CA'er, du har studeret, anvendes dagligt i snesevis af virkelige scenarier. Security+-eksamen tester din evne til at genkende PKI-anvendelsestilfælde, forstå hvilken certifikattype der passer til hvert tilfælde, og identificere hvilken beskyttelse PKI giver i den enkelte sammenhæng. De tre vigtigste anvendelsestilfælde på eksamen er HTTPS/TLS (websikkerhed), S/MIME (e-mailsikkerhed) og kodesignering (softwareintegritet).
HTTPS: PKI til websikkerhed
HTTPS (HTTP over TLS) er det mest synlige PKI-anvendelsestilfælde. Når du opretter forbindelse til https://bank.com, gør din browser følgende: (1) modtager serverens TLS-certifikat, (2) kontrollerer, at certifikatkæden fører til en betroet rod-CA, (3) kontrollerer værtsnavnet mod SAN-felterne, (4) kontrollerer, at certifikatet ikke er tilbagekaldt, og (5) bruger den offentlige nøgle til en Diffie-Hellman-nøgleudveksling for at etablere en krypteret session. Hængelåsikonet i browseren betyder, at alle disse kontroller er bestået. Et manglende eller ugyldigt certifikat medfører en browseradvarsel, som får de fleste brugere til at stoppe.
# Check HTTPS certificate details
curl -v https://example.com 2>&1 | grep -A 10 'SSL certificate'
# Test TLS configuration quality
openssl s_client -connect example.com:443 -tls1_3 2>/dev/null | \
grep -E 'Protocol|Cipher|Verify'
# Protocol: TLSv1.3
# Cipher: TLS_AES_256_GCM_SHA384
# Verify return code: 0 (ok)S/MIME: PKI til e-mailsikkerhed
S/MIME (Secure/Multipurpose Internet Mail Extensions) bruger PKI-certifikater til at levere to sikkerhedstjenester til e-mail. Kryptering: Afsenderen krypterer e-mailens indhold med modtagerens offentlige nøgle, så kun modtageren kan dekryptere det — det beskytter fortroligheden, selv hvis e-mailen opsnappes under transport eller gemmes på en kompromitteret server. Digitale signaturer: Afsenderen signerer med sin private nøgle, hvilket beviser over for modtageren, at e-mailen faktisk kommer fra afsenderen og ikke er blevet ændret — det beskytter integriteten og sikrer uafviselighed. S/MIME kræver, at hver bruger har sit eget certifikat udstedt af en CA.
# S/MIME email signing and encryption with OpenSSL
# Sign an email
openssl smime -sign -in email_body.txt -signer alice_cert.pem \
-inkey alice_private.key -out signed_email.eml -outform PEM
# Encrypt an email (using Bob's public key/certificate)
openssl smime -encrypt -aes256 -in email_body.txt \
-out encrypted_email.eml bob_cert.pem
# Bob decrypts with his private key
openssl smime -decrypt -in encrypted_email.eml \
-recip bob_cert.pem -inkey bob_private.keyKodesignering: PKI til softwareintegritet
Kodesignering bruger PKI til at signere software digitalt — eksekverbare filer, scripts, drivere og installationsprogrammer — så brugerne kan kontrollere, at softwaren kommer fra en betroet udgiver og ikke er blevet manipuleret. Softwareleverandøren signerer sin kode med en privat nøgle fra et kodesigneringscertifikat, der er udstedt af en betroet CA. Når en bruger kører softwaren, kontrollerer operativsystemet signaturen ved hjælp af leverandørens offentlige nøgle fra certifikatkæden. Windows SmartScreen, macOS Gatekeeper og appbutikkerne til iOS og Android er alle afhængige af kodesignering for at fastslå softwarens oprindelse. Usigneret software kan blive blokeret eller udløse sikkerhedsadvarsler.
# Verify code signing on Windows (PowerShell)
Get-AuthenticodeSignature -FilePath 'C:\Software\installer.exe' | Format-List
# Status: Valid
# SignerCertificate: [certificate details]
# TimeStamperCertificate: [timestamp CA details]
# On Linux/macOS, verify GPG signature of downloaded software
gpg --verify hashicorp_public.gpg terraform.zip.sig terraform.zip
# Good signature from 'HashiCorp Security (hashicorp.com/security)'Godkendelse med klientcertifikat
Godkendelse med klientcertifikat (også kaldet gensidig TLS eller mTLS) udvider den almindelige TLS-model ved også at kræve, at klienten fremlægger et certifikat. I standard-TLS godkendes kun serveren med et certifikat; i mTLS godkendes begge parter gensidigt. Det bruges til: VPN-godkendelse (smartkort eller klientcertifikater i stedet for adgangskoder), API-godkendelse (maskine-til-maskine-godkendelse, hvor klienten er en tjeneste og ikke et menneske) og privilegeret administratoradgang (hvor administratorer skal bruge hardwaretokens med indlejrede certifikater).
# nginx configuration for mutual TLS (client certificate required)
# server {
# listen 443 ssl;
# ssl_certificate /path/to/server_cert.pem;
# ssl_certificate_key /path/to/server_key.pem;
# ssl_client_certificate /path/to/ca_cert.pem;
# ssl_verify_client on;
# ssl_verify_depth 2;
# }
# Test with a client certificate
curl --cert client_cert.pem --key client_key.pem https://api.example.com/Kontrol af SSH-værtsnøgler
SSH bruger kryptografi med offentlige nøgler til to formål: servergodkendelse og klientgodkendelse. Servergodkendelse: Når du opretter forbindelse til en SSH-server for første gang, præsenterer den sin værtsnøgle (offentlige nøgle). Din SSH-klient gemmer den i ~/.ssh/known_hosts. Ved efterfølgende forbindelser advarer SSH dig, hvis værtsnøglen er ændret, hvilket kan være tegn på et MITM-angreb eller en genopbygning af serveren. Klientgodkendelse: I stedet for adgangskoder bruger administratorer nøglepar — den offentlige nøgle føjes til serverens authorized_keys, og den private nøgle (som aldrig sendes) beviser identiteten. SSH-værtsnøgler er adskilt fra PKI-certifikater, men har samme tillidsfunktion.
# First-time SSH connection stores server host key
ssh user@server.example.com
# The authenticity of host 'server.example.com' can't be established.
# ED25519 key fingerprint is SHA256:abc123...
# Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
# Host key stored in: ~/.ssh/known_hosts
cat ~/.ssh/known_hosts | grep server.example.com
# If host key changes:
# WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!Dokumentsignering og tidsstempling
PKI muliggør juridisk bindende digital dokumentsignering i mange jurisdiktioner. Adobe PDF-signaturer, DocuSign og offentlige systemer til elektroniske signaturer bruger alle PKI-certifikater til at signere dokumenter. Et vigtigt supplement til dokumentsignering er tidsstempling: En Trusted Timestamp Authority (TSA) medsignerer dokumentets hash med et betroet tidspunkt og beviser dermed, at dokumentet eksisterede på et bestemt tidspunkt. Tidsstempling er også afgørende for kodesignering — uden et tidsstempel bliver kodesignaturer ugyldige, når signeringscertifikatet udløber, selv for software, der blev distribueret før udløbet.
IoT-enhedscertifikater
Efterhånden som IoT-enheder bliver mere udbredte, giver PKI en mekanisme til at godkende enheder i stor skala. Hver enhed forsynes med et unikt certifikat under fremstillingen (en proces kaldet klargøring af enhedsidentitet), så servere kan godkende individuelle enheder ud fra deres certifikater. Det muliggør scenarier som: en intelligent elmåler, der beviser sin identitet over for forsyningsselskabets server, en medicinsk enhed, der godkendes på et hospitalsnetværk, eller en flåde af køretøjer, der godkendes over for producentens backend. IoT-PKI skal håndtere millioner af enheder med begrænsede ressourcer, hvilket fremmer brugen af ECC-certifikater på grund af deres lille størrelse og hurtige kontrol.
VPN-godkendelse med certifikater
Certifikatbaseret VPN-godkendelse er betydeligt mere sikker end VPN-godkendelse baseret på adgangskoder. Hver VPN-bruger eller -enhed får udstedt et klientcertifikat af organisationens interne CA. Ved oprettelse af forbindelse kontrollerer VPN-gatewayen klientcertifikatet (og sikrer, at det er udstedt af den betroede interne CA, er inden for sin gyldighedsperiode og ikke er blevet tilbagekaldt via CRL/OCSP). Når en medarbejder fratræder, forhindrer tilbagekaldelse af vedkommendes certifikat straks VPN-adgang — det er mere pålideligt end at håbe på, at medarbejderen ikke har delt sin adgangskode med andre.
# OpenVPN client certificate configuration
# client
# remote vpn.example.com 1194
# proto udp
# ca ca.crt <- CA certificate (trust anchor)
# cert client.crt <- Client's certificate
# key client.key <- Client's private key
# tls-auth ta.key 1
# cipher AES-256-GCM
# The VPN server verifies the client cert chain against ca.crt
# Revoked certs listed in CRL won't be acceptedAlmindelige certifikatrelaterede fejl
Sikkerhedsprofessionelle skal kunne diagnosticere almindelige certifikatfejl. Certifikatet er udløbet: Datoen notAfter er overskredet — forny certifikatet. Uoverensstemmelse mellem værtsnavne: Certifikatets SAN matcher ikke det ønskede værtsnavn — kontrollér CN'er og SAN'er; der kan være behov for et wildcard- eller multi-SAN-certifikat. Selvsigneret certifikat: Ingen CA har godkendt dette certifikat — føj det til det lokale tillidslager, eller erstat det med et CA-signeret certifikat. Ufuldstændig kæde: Det mellemliggende CA-certifikat leveres ikke af serveren — konfigurer serveren til at sende hele kæden. Certifikatet er tilbagekaldt: CRL eller OCSP viser tilbagekaldelse — øjeblikkelig reaktion på kompromittering af nøglen er nødvendig.
# Diagnose certificate errors with openssl
openssl s_client -connect server.example.com:443 2>&1
# Common error messages:
# depth=0 ... error 10 at 0 depth lookup: certificate has expired
# depth=0 ... error 18: self-signed certificate
# depth=0 ... error 20: unable to get local issuer certificate (broken chain)
# depth=0 ... error 23: certificate revoked
# Verify return code: 0 (ok) = successWildcard- kontra SAN-certifikater
To certifikattyper håndterer flere værtsnavne. Et wildcard-certifikat dækker alle underdomæner på første niveau af et domæne: *.example.com dækker www.example.com, mail.example.com og api.example.com, men IKKE sub.api.example.com (to niveauer). Ét certifikat og én privat nøgle til alle tjenester — praktisk, men risikabelt, hvis nøglen kompromitteres (alle tjenester påvirkes). Et multi-SAN-certifikat angiver udtrykkeligt flere bestemte domæner i SAN-udvidelsen (for eksempel example.com, www.example.com og api.example.com). Det giver større detaljeringsgrad, men kræver, at certifikatet opdateres, når der tilføjes nye domæner.
Hurtigt tjek
Tjek din forståelse af CompTIA Security+-koncepterne (SY0-701) fra denne lektion.
Opsummering af lektionen
I denne lektion har du lært, at HTTPS/TLS bruger servercertifikater til at kryptere webtrafik og godkende servere; S/MIME-certifikater muliggør signering og kryptering af e-mail; kodesigneringscertifikater beviser softwarens integritet og udgiverens identitet; og klientcertifikater muliggør gensidig godkendelse til VPN'er og API'er. Næste emne er adgangskodepolitikker og multifaktorgodkendelse.
Lær Cloud & IT Cert Prep med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 150
- Lektioner
- 600
Ofte stillede spørgsmål
Er lektionen “PKI-anvendelser: HTTPS, S/MIME og code signing” gratis?
Ja — hele teksten til “PKI-anvendelser: HTTPS, S/MIME og code signing” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cloud & IT Cert Prep-kurset, skal du opgradere til CoddyKit PRO. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “PKI-anvendelser: HTTPS, S/MIME og code signing”?
Anvend PKI-koncepter i virkelige scenarier: sikring af webtrafik, kryptering af e-mail med S/MIME og verificering af softwares integritet med code-signing-certifikater. Du øver dig i Cloud & IT Cert Prep med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cloud & IT Cert Prep?
Der kræves ingen tidligere erfaring. Cloud & IT Cert Prep på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “PKI-anvendelser: HTTPS, S/MIME og code signing”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cloud & IT Cert Prep-lektion?
Ja. Alle Cloud & IT Cert Prep-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Certificate Authorities og tillidskæder
- X.509-certifikatets struktur
- Certifikatets livscyklus og tilbagekaldelse
- PKI-anvendelser: HTTPS, S/MIME og code signing