Dva certifikata OpenVPN, eno ime CCD: kaj je šlo narobe
Serijska številka je edinstvena le pri svojem izdajatelju, medtem ko OpenVPN izbere datoteko CCD po imenu. Rezervirajte to dejansko ime ob vpisu in nadzorujte podaljšanje.
Dva odjemalska certifikata z različnimi serijskimi številkami, različnimi ključi in celo različnimi celotnimi subjekti lahko še vedno končata v isti datoteki pravilnika, ker strežnik ne gleda nič od tega. Prebere ime iz certifikata in odpre ustrezno konfiguracijsko datoteko odjemalca. Če oba certifikata nosita isto ime, drugi podeduje pravilnik prvega v trenutku, ko se poveže.
Trčenje nastane ob vpisu in se odkrije šele ob povezavi, običajno ko naprava prejme naslov ali nabor poti, ki pripadajo drugemu stroju. Preprečiti ga pomeni dogovoriti se, katero polje strežnik preslika, in nato to vrednost rezervirati, preden je karkoli podpisano.
Vaša orodja za certifikate vas ne bodo opozorila, ker sta edinstvenost znotraj X.509 in edinstvenost imena pravilnika OpenVPN različni zahtevi, ki jih uveljavljajo različni sistemi.
Strežnik išče ime, ne prstnega odtisa
Pri običajnem preslikavanju na podlagi certifikatov strežnik vzame skupno ime iz predloženega certifikata in poišče datoteko s tem imenom v svoji mapi konfiguracije odjemalcev. Ta datoteka lahko pripne statični naslov, potisne poti ali uporabi oznake požarnega zidu za vsakega odjemalca. Iskanje je ujemanje niza z imenom datoteke, zato so velike in male črke, presledki in ločila vsi pomembni.
Nekatere namestitve namerno zamenjajo preslikavo, da overjeno uporabniško ime prevzame skupno ime, in takrat mora biti edinstveno prav uporabniško ime. Kakorkoli, vrednost, ki izbere pravilnik, je vrednost, ki jo rezervirate. Odločite se, katera je, preden karkoli izdate; ugibanje po trčenju stane več kot vprašanje.
Kjer se dve oblasti srečata na istem imenu
Organizacija, ki sprejema certifikate od več kot ene izdajateljske oblasti, izvaja dva neodvisna postopka vpisa, ki pišeta v en imenski prostor. Lastna pravila edinstvenosti vsake oblasti veljajo znotraj nje, zato lahko obe zakonito izdata za isto skupno ime, ne da bi katera opazila kaj napačnega.
Serijske številke ne pomagajo. X.509 zahteva, da je serijska številka edinstvena v okviru izdajatelja, kar je lastnost knjigovodstva te oblasti in ne globalna identiteta naprave. Tudi preverjanje subjekta je drugačen preizkus od preverjanja skupnega imena: dva certifikata si lahko delita CN, a se razlikujeta v organizacijski enoti in zato nosita različna subjekta. Vse te lastnosti lahko veljajo, medtem ko strežnik še vedno preslika oba certifikata na eno ime datoteke.
Dokumentacija OpenSSL CA pokriva nastavitev unique_subject, ki ureja mnenje njene lastne podatkovne baze, in pošteno izhodišče je prebrati svojo izdajateljsko konfiguracijo, namesto da bi predvidevali, da velja določena privzeta vrednost EasyRSA ali OpenSSL.
Rezervirajte dejansko ime pred podpisom
Vodite register, ki preslika napravo v njen odobreni zapis in od tam v točno ime datoteke pravilnika, da se ime dodeli enkrat in ostane dodeljeno. Rezervacija mora biti atomska, kar v praksi pomeni omejitev podatkovne baze ali zaklep okoli koraka dodeli-in-nato-podpiši, ne preglednice, ki jo urejata dve osebi.
Nato naredite preverjanje del izdaje: zavrnite podpis, ko zahtevano ime že obstaja, in v to preverjanje vključite vsako oblast, ki ji strežnik zaupa, ker je ime, ki ga rezervira druga oblast, enako zasedeno. Zavrnjena zahteva z jasnim razlogom je cenejša od zahtevka o napravi, ki nenehno dobiva tuj statični naslov.
Podaljšanje namerno znova uporabi ime
Ponovna izdaja za obstoječo napravo bi morala dati novo serijsko številko pod istim imenom pravilnika, in to je zakonita ponovna uporaba, ne trčenje. Vnaprej je treba odločiti o prekrivanju: ali sta lahko stari in novi certifikat veljavna hkrati, in kako se stara poverilnica umakne.
Ne segajte po duplicate-cn, da bi to rešili. Ta možnost strežnika ureja hkratne povezave, ki predstavljajo isto ime; ne zaklene vpisa in njena omogočitev ne naredi enega skupnega statičnega naslova varnega za dva stroja hkrati. Preklic običajno prepozna certifikat po izdajatelju in serijski številki, zato umik stare poverilnice ne sme razveljaviti njene zamenjave, dokler strežnik prejema in uveljavlja pravilne podatke o preklicu.
Potrdite preslikavo z orodji na stroju
Preden napravi izročite njeno novo poverilnico, preberite ime iz certifikata tako, kot bo to storil strežnik, in ga nato primerjajte z datoteko pravilnika, za katero pričakujete, da bo izbrana.
openssl x509 -in device42.crt -noout -subject -nameopt sep_multiline
ls -l /etc/openvpn/ccd/device42
grep -n "duplicate-cn" /etc/openvpn/server.conf
Prvi ukaz izpiše polja subjekta ločeno, kar takoj naredi vidno zablodelo organizacijsko enoto ali podvojen presledek. Drugi potrdi, da datoteka pravilnika obstaja pod točno tem imenom, tretji pa pokaže, ali je strežnik nastavljen tako, da dovoljuje več sej na enem imenu. Zaženite vse tri na novem certifikatu, preden ta zapusti korak vpisa, ko napaka še stane podpis in ne incident. Shranite izpis skupaj z zahtevkom, da bo naslednja oseba videla, katero ime je strežnik dejansko dobil.
Zaključite z resnično povezavo in primerjajte dodeljeni naslov ter potisnjene poti z datoteko pravilnika, ne s tem, kar ste nameravali napisati. Če dve napravi poročata isti statični naslov, ima register trčenje, ki ga noben pregled certifikatov ne bo razkril.