Inhaltsverzeichnis
Navodilo: Obnova certifikata
Trajanje: ~15 minut
Vloga: PKI operater
Sprožilec: Opozorilo o izteku (30/14/7 dni)
Potek dela
flowchart TD
A[Opozorilo o izteku] --> B{Ključ ogrožen?}
B -->|Da| C[→ Navodilo za preklic]
B -->|Ne| D{Isti par ključev?}
D -->|Da| E[Ponovna certifikacija]
D -->|Ne| F[Ponovna izdaja ključa]
E --> G[Nov certifikat]
F --> H[Nov CSR]
H --> G
G --> I[Arhivirati stari certifikat]
I --> J[Namestiti nov certifikat]
J --> K[Posodobiti nadzor]
style B fill:#ffebee
style G fill:#e8f5e9
style J fill:#e3f2fd
Korak 1: Identifikacija iztekajočih certifikatov
# Vsi certifikati z iztekom < 30 dni find /etc/ssl/certs -name "*.pem" -exec sh -c ' enddate=$(openssl x509 -enddate -noout -in "$1" 2>/dev/null | cut -d= -f2) if [ -n "$enddate" ]; then expiry=$(date -d "$enddate" +%s 2>/dev/null) now=$(date +%s) days=$(( (expiry - now) / 86400 )) if [ "$days" -lt 30 ]; then echo "$1: $days dni" fi fi ' _ {} \;
# PowerShell: Iskanje iztekajocih certifikatov Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.NotAfter -lt (Get-Date).AddDays(30) } | Select-Object Subject, NotAfter, Thumbprint
Korak 2: Izbira metode obnove
| Metoda | Kdaj uporabiti | Prednost |
| ——– | —————- | ———- |
| Ponovna certifikacija | Ključ varen, brez sprememb | Hitro, brez ponovne namestitve |
| Ponovna izdaja ključa | Nova dolžina ključa, sprememba politike | Povečana varnost |
| Zamenjava | Nov algoritem (→ PQ) | Pripravljenost na prihodnost |
Korak 3a: Ponovna certifikacija (isti par ključev)
# Generiranje CSR iz obstoječega certifikata + ključa openssl x509 -x509toreq -in old_cert.pem -signkey private.key -out renew.csr # Izdaja novega certifikata openssl ca -config openssl.cnf \ -extensions server_cert \ -in renew.csr \ -out renewed_cert.pem \ -days 365 \ -notext
Korak 3b: Ponovna izdaja ključa (nov par ključev)
# Generiranje novega kljuca (EC P-384) openssl ecparam -genkey -name secp384r1 -out new_private.key # Nov CSR z istim Subject openssl req -new -key new_private.key -out rekey.csr \ -subj "$(openssl x509 -in old_cert.pem -subject -noout | sed 's/subject=//')" # Izdaja certifikata openssl ca -config openssl.cnf \ -extensions server_cert \ -in rekey.csr \ -out rekeyed_cert.pem \ -days 365
Korak 3c: Zamenjava (nadgradnja na hibridno/PQ)
// Migracija na hibridni nacin using var oldCert = new X509Certificate2("old_cert.pfx", "password"); // Nov par kljucev (ML-DSA-65 za hibridno) using var mlDsa = MlDsaSigner.Create(MlDsaParameterSet.MlDsa65); using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP384); var request = new CertificateRequest( oldCert.SubjectName, ecdsa, HashAlgorithmName.SHA384); // Prevzem razsiritev foreach (var ext in oldCert.Extensions) request.CertificateExtensions.Add(ext); // Ustvarjanje hibridnega certifikata var newCert = request.CreateSelfSigned( DateTimeOffset.UtcNow, DateTimeOffset.UtcNow.AddDays(365), CryptoMode.Hybrid);
Korak 4: Arhiviranje starega certifikata
# Arhiviranje z metapodatki ARCHIVE_DIR="/var/archive/certs/$(date +%Y)" mkdir -p "$ARCHIVE_DIR" # Certifikat + metapodatki cp old_cert.pem "$ARCHIVE_DIR/$(openssl x509 -serial -noout -in old_cert.pem | cut -d= -f2).pem" # Dnevnik arhiva echo "$(date -Iseconds) RENEWED $(openssl x509 -serial -noout -in old_cert.pem)" >> /var/log/cert-archive.log
Korak 5: Namestitev
| Sistem | Metoda namestitve | Potreben ponovni zagon |
| ——– | ——————- | ———————— |
| Apache | cp cert.pem /etc/ssl/; systemctl reload apache2 | Ne |
| Nginx | cp cert.pem /etc/nginx/ssl/; nginx -s reload | Ne |
| IIS | Import-PfxCertificate; netsh http update | Ne |
| Kubernetes | kubectl create secret tls | Ponovni zagon Pod |
# Ponoven zagon Apache/Nginx systemctl reload apache2 # ali nginx -s reload # Test povezave openssl s_client -connect server.example.com:443 -brief
Korak 6: Posodobitev nadzora
# Vnos novega prstnega odtisa v nadzor NEW_FP=$(openssl x509 -fingerprint -sha256 -noout -in renewed_cert.pem | cut -d= -f2) echo "Nov prstni odtis: $NEW_FP" # Posodobitev Prometheus opozorila (ce temelji na prstnem odtisu) # Datum izteka v nadzoru se mora samodejno posodobiti
Kontrolni seznam po obnovi
| # | Kontrolna točka | Ukaz | |
| — | —————– | —— | — |
| 1 | Nov certifikat aktiven | openssl s_client -connect host:443 | |
| 2 | Veriga popolna | openssl verify -CAfile chain.pem cert.pem | |
| 3 | Stari certifikat arhiviran | ls /var/archive/certs/ | |
| 4 | Zahtevek zaprt | Sistem zahtevkov | |
| 5 | Nadzor posodobljen | Pregled nadzorne plošče |
Odpravljanje težav
| Težava | Vzrok | Rešitev |
| ——– | ——- | ——— |
certificate has expired | Pozabljen ponoven zagon | Ponovno zagnati storitev |
certificate chain incomplete | Manjka vmesni | cat cert.pem intermediate.pem > fullchain.pem |
hostname mismatch | SAN ni posodobljen | CSR s pravilnimi SANi |
| Odjemalec ne zaupa | CA ni v shrambi | Distribuirati CA certifikat |
Povezana navodila
- Izdaja certifikata – Novi certifikati
- Preklic certifikata – Ob ogroženosti
- Samodejna obnova – Avtomatizacija
« ← Izdaja certifikata | → Preklic certifikata »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: dne 30.01.2026 ob 07:39