nepodržana namjena certifikata: zašto posredni CA ne uspijeva
Kada OpenVPN prijavi nepodržanu namjenu certifikata, krajnji certifikat može biti nevin. Usporedite namjenu krajnjeg certifikata s politikom lanca prije nego što bilo što ponovno izdate.
Namjena poslužiteljskog certifikata izgleda ispravno, ključ se podudara, datumi su u redu, a veza i dalje ne uspijeva s unsupported certificate purpose. Pojedinost koja to rješava obično je u istom redu kao i greška: vrijednost dubine i subjekt koji imenuju certifikat više u lancu. Izvode se dva različita testa, a samo se jedan odnosi na krajnji certifikat. Njihova usporedba objašnjava zašto zamjena poslužiteljskog certifikata ništa ne mijenja.
Koji je certifikat provjerivač zapravo odbio
Lanac nije jedan objekt ponovljen tri puta. Krajnji certifikat nosi ime i ključ poslužitelja, posredni ga povezuju s korijenom, a svaki ima svoje razdoblje valjanosti, ograničenja i namjene. Kada greška navede dubinu, taj broj označava položaj u lancu koji je provjerivač izgradio, a to možda nije položaj koji očekujete ako poslužitelj šalje neočekivani lanac.
Čitajte polja certifikata na toj dubini, a ne certifikata za koji ste pretpostavili da je kriv. Zatražite dva proširenja koja ograničavaju izdavanje umjesto da ispisujete svako polje, jer je odgovor gotovo uvijek u jednom od njih. Izlaz proširenja siguran je za dijeljenje; privatni ključevi nikada.
openssl x509 -in issuing-ca.pem -noout -subject -issuer -ext basicConstraints -ext extendedKeyUsage
Ako je navedeni certifikat posredni čija proširena upotreba ključa spominje nešto nepovezano s provjerom identiteta TLS poslužitelja, ostatak neuspjeha slijedi mehanički. Lanac se ne može upotrijebiti za namjenu koju je OpenVPN zatražio.
Namjena krajnjeg certifikata i politika lanca dva su testa
Test krajnjeg certifikata postavlja usko pitanje: dopušta li ovaj certifikat krajnjeg subjekta provjeru identiteta poslužitelja za ovo ime? Test lanca postavlja šire: smije li svaki certifikat na putu služiti toj namjeni? Ustanova koja smije izdavati samo klijentske certifikate proći će vlastite provjere potpisa i ipak pasti na drugom testu, jer put koji odobrava ne uključuje namjenu koja je potrebna aplikaciji. Dva testa padaju uz iste riječi i imaju posve različite popravke.
Zato svježe izdan krajnji certifikat, ispravan u svakom vidljivom polju, može odmah pasti. Zato i popravak obično pripada profilu ustanove koja izdaje, a ne VPN konfiguraciji.
Odsutan EKU nije restriktivan EKU
RFC 5280 čini proširenje proširene upotrebe ključa neobaveznim i, kada postoji, ograničavajućim. CA certifikat bez proširenja stoga nije rekao „ne“ provjeri identiteta poslužitelja, dok je onaj koji navodi samo nepovezanu namjenu rekao nešto vrlo određeno. Tretiranje tih dvaju stanja kao jednakih daje pogrešnu dijagnozu i, još gore, pogrešnu popravku. Razlika objašnjava i zašto se dvije ustanove koje u konzoli izgledaju slično u lancu ponašaju posve različito.
Ponašanje biblioteka ni ovdje nije jednoobrazno. OpenSSL dokument o mogućnostima provjere opisuje vlastito postupanje s provjerama namjene na CA certifikatima, a to je postupanje provedbena politika, a ne pravilo koje svaki TLS stog slijedi na identičan način. Opišite što vaš provjerivač radi, pa to potvrdite na verziji koju doista pokrećete.
Reproducirajte neuspjeh izvan mreže prije ponovnog izdavanja
Provjera izvan mreže uklanja aplikaciju iz pitanja. Ako lanac pada na isti način pod istom namjenom, problem je u certifikatu i nikakva konfiguracija poslužitelja to neće sakriti. Ako lanac prolazi izvan mreže dok usluga još odbija, aplikacija traži drugu namjenu ili rabi drugi lanac od onoga koji ste testirali.
openssl verify -purpose sslserver -show_chain -CAfile root-ca.pem -untrusted issuing-ca.pem vpn-server.pem
-show_chain je važan jer ispisuje put koji je alat izgradio, a to često nije redoslijed datoteka koji ste dali. Taj je izlaz najbrži način da otkrijete da se drugi posredni certifikat vadi iz skladišta povjerenja, da poslužitelj šalje unakrsno potpisanu varijantu koju niste namjeravali ili da zastavica namjene koju ste kopirali iz udžbenika pripada drugoj ulozi od one koja se poslužuje.
Popravite politiku izdavanja, a ne poziv za provjeru
Trajna je popravka posredni certifikat izdan prema politici koja dopušta namjene kojima mora služiti, uz zapisano i pregledano ograničenje. Dodavanje svake namjene svakoj ustanovi nije politika; ono uklanja ograničenje koje je proširenju dalo smisao i obično nadživi incident koji ga je pokrenuo. Kratka bilješka u profilu koja opisuje koje uloge ustanova smije ovjeriti sprječava sljedeće izdavanje da ponovi istu raspravu.
Isključivanje provjere drugi je primamljiv prečac i pretvara problem certifikata u problem povjerenja. Ostavite provjeru namjene na mjestu, popravite lanac i ponovno pokrenite istu provjeru izvan mreže kako biste potvrdili da put sada služi predviđenoj ulozi prije nego što ponovno dotaknete uslugu.