Varnost potrdila SSL je odvisna od zasebnega ključa. Kdor pride do ključa, se lahko do poteka potrdila izdaja za tvojo spletno stran in v nekaterih primerih tudi dešifrira promet. Če je ključ ušel (ali obstaja sum na to), je treba hitro ukrepati.
Kdaj ključ šteje za razkritega?
- Poslal si ga po e-pošti, v klepetu ali v zahtevku za podporo.
- Prišel je na javno ali deljeno mesto, na primer v repozitorij Git, v shrambo v oblaku ali na forum.
- V strežnik, na katerem je bil ključ, so vdrli.
- Do njega je imel dostop nekdanji sodelavec ali zunanji razvijalec in nisi prepričan, da ga ni obdržal.
- Naprava, ki vsebuje ključ (prenosnik, varnostna kopija), se je izgubila.
Koraki po vrsti
1. Naredi nov zasebni ključ
Starega ključa ne uporabljaj več. Naredi nov ključ in CSR na strežniku, kjer boš potrdilo uporabljal, glej: Ustvarjanje CSR in zasebnega ključa. Novega CSR ne delaj iz starega ključa, ker bi tako tudi novo potrdilo pripadalo razkritemu ključu.
2. Potrdilo znova izdaj z novim ključem
- Pri plačljivem potrdilu na portalu za stranke na strani potrdila z gumbom Reissue zahtevaj ponovno izdajo z novim CSR. To je v času naročnine brezplačno. Glej: Nastavitev in ponovna izdaja plačljivega potrdila SSL.
- Pri brezplačnem potrdilu na gostovanju cPanel piši naši podpori: staro potrdilo odstranimo, AutoSSL pa z novim ključem zahteva novo.
-
Na lastnem strežniku, pri potrdilu Let’s Encrypt zahtevaj novo potrdilo z novim ključem:
certbot certonly --cert-name pelda.hu --force-renewal --new-key -d pelda.hu -d www.pelda.hu
3. Namesti novo potrdilo
Novo potrdilo in ključ namesti povsod, kjer si uporabljal starega: spletni strežnik, poštni strežnik, izenačevalnik obremenitve, CDN. Staro datoteko ključa izbriši s strežnikov in iz varnostnih kopij.
4. Daj preklicati staro potrdilo
Preklic (revocation) brskalnikom sporoči, da staremu potrdilu ne smejo več zaupati.
- Pri plačljivem potrdilu piši naši podpori in staro potrdilo bomo dali preklicati pri izdajatelju. Navedi, da je ključ ušel.
-
Pri potrdilu Let’s Encrypt na lastnem strežniku:
certbot revoke --cert-path /etc/letsencrypt/live/pelda.hu/cert.pem --reason keycompromise
Preklic zahtevaj šele po namestitvi novega potrdila, sicer spletna stran do takrat javlja napako potrdila.
5. Ugotovi, kako je ušel
Če je ključ ušel z vdrtega strežnika, je zamenjava potrdila le eden od korakov. Spremeni gesla strežnika in aplikacij ter preglej sistem. Če je ključ prišel v repozitorij Git, brisanje datoteke ni dovolj, ker ostane v prejšnjih različicah. Ključ vsekakor obravnavaj kot ušel.
Zakaj sam preklic ni dovolj?
Brskalniki sezname preklicev ne preverjajo vedno, zato lahko preklicano potrdilo na nekaterih napravah ostane sprejeto celo do poteka. Tveganje zaradi razkritega ključa zato najučinkoviteje zmanjša kratka življenjska doba. To je eden od razlogov, da je veljavnost potrdil vse krajša, glej: Zakaj potrdila SSL ne veljajo več eno leto?
Preprečevanje
- Zasebni ključ ustvari tam, kjer ga boš uporabljal, in ga po nepotrebnem ne premikaj.
- Nikoli ga nikomur ne pošiljaj, tudi naši podpori ne. Mi ga nikoli ne zahtevamo.
- Dovoljenja datoteke ključa naj bodo stroga (
chmod 600), v repozitorij Git pa naj ne pride (dodaj ga v datoteko.gitignore). - Ob vsaki ponovni izdaji uporabi nov ključ.
- Če je mogoče, uporabljaj samodejno podaljševanje: na gostovanju cPanel AutoSSL ali način Autoinstall plačljivega potrdila ključ ustvari in namesti brez ročnega upravljanja.