Rovnaký názov súboru ca.crt, iný certifikát: čo porovnávať
Dva profily môžu dodať ca.crt s odlišným obsahom. Zaznamenajte odtlačok toho, čo proces načítava, a potom overte, či je to zamýšľaná kotva dôvery.
Dva profily oba dodávajú súbor nazvaný ca.crt, jeden tunel sa zdvihne a druhý zlyhá s chybou reťazca. Otvorenie oboch súborov vedľa seba to málokedy vyrieši a vypnutie overovania to vyrieši nesprávnym smerom. Otázka, ktorú chyba vlastne kladie, je užšia: ktorý certifikát každý proces načítava ako svoju kotvu dôvery a sú tie dva rovnaký objekt? Odpovedzte najprv na to a zvyšok diagnostiky dostane smer. Názov súboru je etiketa balenia a cesta zapísaná v profile tiež nie je smerodajná, takže všetko závisí od toho, čo proces skutočne číta.
Nájdite certifikát, ktorý klient skutočne načítava
OpenVPN prijíma autoritu v dvoch formách a forma rozhoduje, ktoré bajty sú dôležité. Profil môže odkazovať na externý súbor pomocou ca alebo vložiť certifikát do bloku <ca> priamo v profile. Keď existujú oba, vyhráva vložený blok a súbor vedľa profilu sa nikdy neotvorí.
Prečítajte zlyhávajúci profil a zistite, ktorú formu používa, skôr než čokoľvek porovnáte. Kópia vybratá zo susedného adresára alebo z balíka, odkiaľ prišiel druhý profil, vám nepovie nič o tom, čomu tento proces dôveruje. To isté platí pre cestu v konfigurácii: rozlišuje sa relatívne k miestu, kde bol klient spustený, čo nie vždy je adresár, na ktorý sa pozeráte. Čítajte profil, nie priečinok.
Certifikáty sa identifikujú podľa obsahu: verejný kľúč, subjekt a vydavateľ, obdobie platnosti a podpis nad tým všetkým. Dva súbory s totožnými bajtmi sú ten istý certifikát, nech sa volajú akokoľvek, a dva súbory s rovnakým názvom môžu byť nesúvisiace autority. Názov je etiketa balenia, nie identita.
Zaznamenajte odtlačok oboch kópií pomocou openssl
Odtlačok je hash cez DER kódovanie certifikátu, teda formu, ktorú podpis pokrýva, takže konce riadkov a text hlavičky ho nemôžu ovplyvniť. Vypočítajte ho pre každý súbor a máte dva hexadecimálne reťazce oddelené dvojbodkou, ktoré buď sedia, alebo nie. Na zodpovedanie otázky porovnania netreba v certifikáte čítať nič ďalšie.
openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256
Nasmérovať openssl na samotný profil je lákavé, ale prečíta prvý blok certifikátu, ktorý sa v súbore objaví, a profil zvyčajne nesie <cert> pred <ca>. Vyberte blok autority a potom zaznamenajte odtlačok vybratého súboru, pretože to je kópia, ktorú klient skutočne použije.
sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256
Totožné odtlačky znamenajú, že materiál dôvery je rovnaký a chyba reťazca má inú príčinu, čo je iné vyšetrovanie. Rôzne odtlačky znamenajú rôzne certifikáty a práve tam začína ďalšia časť.
Prečítajte nesúlad, skôr než predpokladáte útok
Rôzne odtlačky znamenajú rôzne certifikáty a nič viac. Opätovné vydanie, rotácia, premenovaná autorita alebo zastaraný balík všetky vytvárajú rôzne súbory s úplne legitímnymi históriami. Ktorý patrí do nasadenia, je otázka pre operátora alebo záznam o nasadení, nie pre čas zmeny súboru. Archívy kopírujú časové značky, takže novší súbor nie je automaticky správna kotva.
Koreň, ktorý podpisuje sám seba, je normálny, takže nájdenie takého nie je dôkazom problému. Úlohou overovateľa je zostaviť cestu od certifikátu servera ku kotve, ktorá mu bola odovzdaná, a chyba reťazca zvyčajne znamená, že túto cestu nebolo možné dokončiť.
Skontrolujte, či kotva zlyhávajúceho profilu je autoritou, z ktorej nasadenie stále vydáva. Ak sa odtlačok nezhoduje s ničím v zázname o nasadení, profil je jednoducho zastaraný a žiadne ladenie na strane klienta to neopraví.
Obnovte dôveru bez vypnutia overovania
Krátkodobým riešením je vypnúť overovanie alebo pridať každý certifikát v reťazci ako kotvu. Obe spôsobia, že správa zmizne, a obe menia, ktoré servery klient odvtedy prijme. Zapnite overovanie späť, nainštalujte zamýšľanú kotvu a znova otestujte.
Ak sa reťazec teraz zostaví, ale objaví sa iná chyba, je to pokrok: overenie názvu, dátumy platnosti a odvolanie sú samostatné kontroly so samostatnými správami. Uchovávajte dvojicu odtlačkov a pôvodný text chyby spolu v tikete, aby ďalší človek videl, ktorá kotva bola načítaná a ktorá sa očakávala. Dvojica odtlačkov je dosť malá na vloženie do odovzdávacej poznámky a ďalší výskyt potom zaberie päť minút namiesto popoludnia.
Získajte správnu autoritu rovnakým overeným kanálom, ktorý doručil profil. Stiahnutie certifikátu zo servera preto, že jeho subjekt vyzerá povedome, je iný úkon a potichu rozširuje to, čomu bude klient dôverovať.