Zrušili jste špatný VPN certifikát? Možnosti obnovy a omezení
Zjistěte vydavatele, sériové číslo a kód důvodu, než se dotknete CA. Trvalé zrušení, pozastavení certifikátu a pauza přijetí jsou tři opravy.
Někdo zrušil certifikát v konzoli CA a uživatel se teď nemůže připojit. První instinkt je najít vrácení zpět, a u většiny PKI žádné není: zrušení je deklarovaný fakt o sériovém čísle a podporovaná cesta zpět je nový certifikát, ne obrácený záznam. Projděte níže uvedené kontroly v pořadí, protože to, kterou opravu smíte použít, závisí na kódu důvodu a na tom, zda byl klíč někdy vystaven.
Identifikujte certifikát, ne osobu
Obecná jména se opakují. Uživatel, který se v minulém čtvrtletí znovu zapsal, může mít dva certifikáty se stejným CN a různými sériovými čísly, a zrušení jednoho nechá druhý fungovat. Nejprve určete přesný objekt:
openssl x509 -in client.crt -noout -serial -issuer -subject -dates
openssl crl -in ca.crl -noout -text | head -40
Zapište sériové číslo, vydavatele, datum zrušení a důvod zaznamenaný v CRL. Potom potvrďte, která zařízení toto sériové číslo předkládají, protože zrušený certifikát může být stále nainstalován na notebooku, telefonu a náhradním routeru, a náhrada, která se dostane jen k jednomu z nich, vytvoří druhý incident.
Rychlá behaviorální kontrola potvrdí stav, aniž by cokoli měnila:
openssl verify -crl_check -CAfile ca.crt -CRLfile ca.crl client.crt
Pokud hlásí certifikát jako zrušený, CRL a klient se shodují; pokud se ověří čistě, klient, kterého držíte, není ten zrušený, a hledání pokračuje.
Zkontrolujte, zda CA použila pozastavení, nebo trvalé zrušení
RFC 5280 definuje certificateHold jako dočasný stav a removeFromCRL jako signál, který jej uvolňuje. Tento životní cyklus je skutečný, ale není to obecné tlačítko zpět. Čtení kódu důvodu vám řekne, zda vydavatel někdy zamýšlel uvolňování podporovat.
Past spočívá v předpokladu, že dočasný záměr znamená dočasný záznam. Pokud záznam v CA nese keyCompromise nebo cessationOfOperation, je certifikát trvale zrušen bez ohledu na to, co člověk, který stiskl tlačítko, zamýšlel. Naopak záznam označený certificateHold na CA, která uvolňování pozastavení neimplementuje, je v praxi trvalý, protože nic nikdy uvolnění nezveřejní.
CA založené na OpenSSL tohle omezení ilustrují. Příkaz ca přijímá hodnoty -crl_reason, včetně certificateHold a removeFromCRL, ale negeneruje delta CRL — dokumentace OpenSSL CA uvádí toto omezení pro svůj výstup CRL. Plný CRL, který sériové číslo prostě vynechá, je jiný model publikace než delta, která říká "tento záznam je uvolněn", takže vložení removeFromCRL do VPN CA založené na OpenSSL neprodukuje standardy definované uvolnění.
Pokud mohl být klíč vystaven, vyměňte ho
Zrušený certifikát je prohlášení, že tomuto klíči už nelze důvěřovat. Pokud bylo zrušení věcně správné — notebook ztracen, klíč zkopírován na sdílený disk, soukromý klíč vložen do tiketu — obnovení stejného certifikátu obrací bezpečnostní rozhodnutí, které fungovalo, jak mělo.
Vydajte nový pár klíčů přes proces registrace, rozšiřte nový profil a ponechte staré sériové číslo zrušené po celou dobu jeho životnosti. Aktualizujte vše, co připíná identitu podle sériového čísla nebo otisku, včetně seznamů přijetí, inventářů zařízení a monitoringu, který očekává konkrétní certifikát.
Argument pohodlnosti pro obnovení starého je skutečný, ale má dostat výslovnou odpověď, ne tichou. "Uživatel potřebuje přístup dnes" je důvod zrychlit vydání, ne důvod zrušit zrušení klíče, za který nedokážete ručit.
Pokud šlo o administrativní chybu, vyměňte pod kontrolou
Když bylo zrušení prostě chybné a klíč nikdy nebyl vystaven, oprava je stále řízená náhrada, ne úprava. Použijte podporovaný proces vydavatele, zachovejte sériové číslo a historii vydání a vyhněte se dvěma lákavým zkratkám: převrácení stavového znaku v index.txt z R zpět na V a smazání řádku vydání, aby nový certifikát mohl znovu použít sériové číslo.
Na CA OpenSSL je databáze oddělená tabulátory a snadno se přečte špatně, což ruční úpravy činí lákavými:
awk -F'\t' '$1=="R" {print $4, $3, $6}' index.txt
Čtěte ji, nepište do ní. Úprava souboru změní příští CRL bez jakékoli auditní stopy a jakákoli druhá instance CA nebo záloha, která stále drží původní řádek, se s ní později rozejde.
Po vydání náhrady zveřejněte nový CRL obvyklým mechanismem a nechte klienty, ať si ho vyzvednou. Odebrání CRL, zkrácení jeho životnosti na nulu nebo vypnutí kontroly zrušení v profilu klienta opraví jednoho uživatele tím, že oslabí všechna ostatní zrušení, která CA kdy zveřejnila.
Potvrďte nové přijetí a uchovejte záznam
Testujte novým připojením, ne relací, která už byla otevřená. Živý tunel nemusí znovu spustit kontroly přijetí, které provádí nový handshake, a cache CRL znamenají, že se klient může připojovat dál, dokud se neobnoví. Odpojte se, připojte se znovu a v logu serveru potvrďte, které sériové číslo bylo přijato.
Zaznamenejte, co se stalo, dokud je to čerstvé: které sériové číslo bylo zrušeno, kým, s jakým důvodem, která náhrada byla vydána a kdy byl CRL znovu zveřejněn. Tento záznam umožňuje příští revizi zrušení a je také důkazem, že chyba byla řešena, ne skryta.
Pro krátké pozastávky v budoucnu použijte mechanismus pauzy přijetí, pokud ho nasazení má — účet deaktivovaný v identitní vrstvě, odebrané členství ve skupině, zadržený profil klienta. To drží dočasné politické rozhodnutí oddělené od otázky, zda je vydaný certifikát stále důvěryhodný, a přesně tento rozdíl se poprvé ztratil.