Inhaltsverzeichnis
Navodilo: Preklic certifikata
Trajanje: ~5 minut
Vloga: PKI operater / Varnost
Prioriteta: VISOKA ob ogroženosti
Potek dela
flowchart TD
A[Zahteva za preklic] --> B{Razlog?}
B -->|Ogroženost| C[TAKOJ blokirati]
B -->|Zamenjava| D[Načrtovano blokirati]
B -->|Napaka| E[Preveriti + blokirati]
C --> F[Posodobiti CRL]
D --> F
E --> F
F --> G[Distribuirati CRL]
G --> H[Posodobiti OCSP]
H --> I[Obvestilo]
I --> J[Dokumentacija]
style C fill:#ffebee
style F fill:#fff3e0
style G fill:#e3f2fd
Razlogi za preklic (RFC 5280)
| Koda | Razlog | Kdaj uporabiti |
| —— | ——– | —————- |
| 0 | unspecified | Privzeto (ni priporočeno) |
| 1 | keyCompromise | Zasebni ključ ogrožen |
| 2 | cACompromise | CA ogrožen |
| 3 | affiliationChanged | Sprememba organizacije |
| 4 | superseded | Nadomeščen z novim certifikatom |
| 5 | cessationOfOperation | Storitev ukinjena |
| 9 | privilegeWithdrawn | Pooblastilo odvzeto |
Korak 1: Identifikacija certifikata
# Iskanje po serijski stevilki openssl x509 -in certificate.pem -serial -subject -noout # Iskanje v CA bazi podatkov grep -r "CN=server.example.com" /etc/pki/CA/index.txt
# PowerShell: Iskanje certifikata Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*server.example.com*" } | Select-Object SerialNumber, Subject, Thumbprint
Korak 2: Izvedba preklica
OpenSSL (CLI)
# Preklic certifikata openssl ca -config openssl.cnf \ -revoke /path/to/certificate.pem \ -crl_reason keyCompromise # Alternativa: Po serijski stevilki openssl ca -config openssl.cnf \ -revoke_by_serial 01234567890ABCDEF \ -crl_reason keyCompromise
C# (WvdS.System.Security.Cryptography)
// Preklic certifikata in ustvarjanje CRL var crlBuilder = new CertificateRevocationListBuilder(); // Dodajanje preklica crlBuilder.AddEntry( revokedCert.SerialNumber, DateTimeOffset.UtcNow, X509RevocationReason.KeyCompromise); // Podpisovanje CRL (hibridni nacin) using var issuerCert = new X509Certificate2("ca.pfx", "password"); var crlNumber = BigInteger.Parse("42"); var nextUpdate = DateTimeOffset.UtcNow.AddDays(7); byte[] crl = crlBuilder.Build( issuerCert, crlNumber, nextUpdate, HashAlgorithmName.SHA384, CryptoMode.Hybrid); File.WriteAllBytes("crl.der", crl);
Korak 3: Generiranje in distribucija CRL
# Generiranje novega CRL openssl ca -config openssl.cnf -gencrl -out crl.pem # Pretvorba CRL v DER obliko (za distribucijo) openssl crl -in crl.pem -outform DER -out crl.der # Preverjanje CRL openssl crl -in crl.pem -text -noout
Distribucijske točke:
| Metoda | Cilj | Ukaz |
| ——– | —— | —— |
| HTTP | Spletni strežnik | cp crl.der /var/www/pki/crl.der |
| LDAP | Active Directory | ldapmodify -f update-crl.ldif |
| CDP | V certifikatu | Samodejno preko URL |
# Kopiranje CRL na spletni streznik scp crl.der webserver:/var/www/html/pki/crl.der # Ponoven zagon Nginx/Apache (ce je predpomnilnik) ssh webserver "systemctl reload nginx"
Korak 4: Posodobitev OCSP (če se uporablja)
# Posodobitev indeksa OCSP odzivnika (samodejno pri OpenSSL CA) # Odzivnik bere /etc/pki/CA/index.txt # Test OCSP odziva openssl ocsp \ -issuer intermediate.pem \ -cert certificate.pem \ -url http://ocsp.example.com \ -resp_text
Pričakovan odziv po preklicu:
Cert Status: revoked Revocation Time: Dec 15 10:30:00 2024 GMT Revocation Reason: keyCompromise
Korak 5: Obvestilo
Obvezna obvestila:
| Prejemnik | Metoda | Vsebina |
| ———– | ——– | ——— |
| Imetnik certifikata | E-pošta | Serijska številka, razlog, naslednji koraki |
| Varnostna ekipa | Zahtevek | Podrobnosti incidenta |
| Prizadeti sistemi | Opozorilo | Samodejno preko nadzora |
# Posiljanje predloge e-poste cat << 'EOF' | mail -s "Certifikat preklican - Zahtevano ukrepanje" admin@example.com Certifikat je bil preklican: Serijska stevilka: 01:23:45:67:89:AB:CD:EF Subject: CN=server.example.com Razlog: Ogroženost ključa Datum: $(date -Iseconds) Zahtevano ukrepanje: 1. Konfiguracija storitve z novim certifikatom 2. Odstranitev starega certifikata iz vseh sistemov Vprašanja: pki-team@example.com EOF
Korak 6: Dokumentacija
| Polje | Vrednost |
| ——- | ———- |
| Serijska številka | 01:23:45:67:89:AB:CD:EF |
| Subject | CN=server.example.com |
| Razlog preklica | keyCompromise |
| Datum preklica | 2024-12-15 10:30:00 UTC |
| Številka CRL | 42 |
| Operater | Ime operaterja |
| Zahtevek | SEC-2024-0815 |
Nujni primer: Množični preklic
Ob ogroženosti CA: → Navodilo za nujni preklic
# Preklic vseh certifikatov CA for cert in /etc/pki/CA/newcerts/*.pem; do openssl ca -config openssl.cnf -revoke "$cert" -crl_reason cACompromise done # Nov CRL s kratko veljavnostjo openssl ca -config openssl.cnf -gencrl -crldays 1 -out emergency-crl.pem
Kontrolni seznam
| # | Kontrolna točka | |
| — | —————– | — |
| 1 | Certifikat vnesen v CRL | |
| 2 | CRL podpisan in veljaven | |
| 3 | CRL dostopen na vseh CDP | |
| 4 | OCSP odgovarja revoked | |
| 5 | Imetnik certifikata obveščen | |
| 6 | Varnostni zahtevek dokumentiran |
Odpravljanje težav
| Težava | Vzrok | Rešitev |
| ——– | ——- | ——— |
already revoked | Dvojni preklic | Prezreti |
unknown serial | Ni od tega CA | Preveriti CA |
| CRL neveljaven | Napaka podpisa | Preveriti CA ključ |
OCSP odgovarja good | Predpomnilnik/sinhronizacija | Ponovno zagnati OCSP odzivnik |
Povezana navodila
- Izdaja certifikata – Nadomestni certifikat
- Nujni preklic – Množični preklic
- Kratka referenca validacije – Preverjanje CRL/OCSP
« ← Obnova certifikata | → Pregled zdravja »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: dne 30.01.2026 ob 07:39