Tri različna vprašanja dobijo odgovore od treh različnih delov profila OpenVPN, in prav njihovo združevanje povzroči, da ljudje na koncu izklopijo preverjanje, ki je delovalo. Je potrdilo nasprotne strani podpisano s strani organa, ki mu zaupam? Ali to potrdilo razglaša vlogo strežnika TLS? Je to natanko tisti strežnik, do katerega sem hotel priti? remote-cert-tls server odgovori le na srednje vprašanje in to stori z branjem razširitev v potrdilu.

Tri preverjanja, ki jih je v glavi lahko združiti

Sidro zaupanja živi v direktivi ca. Preverjanje vloge pripada remote-cert-tls. Preverjanje identitete pripada verify-x509-name, ko ga profil uporablja, ali kateremu koli preverjanju imena, ki ga doda uvajanje.

Pokrivajo različne okvare:

QuestionDirectiveFailure it catches
Who signed this?caCertificate from an unrelated authority
Is this a server?remote-cert-tlsClient certificate presented by a peer
Is this my server?verify-x509-nameAnother valid server from the same CA

Profil ima lahko vse tri in je še vedno šibek, če je CA deljen preširoko, kar je vprašanje upravljanja ključev in ne direktive.

Kaj bere preverjanje vloge

Direktiva je makro. Razširi se v zahtevo za uporabo ključa in zahtevo za razširjeno uporabo ključa, ki navaja vlogo spletnega strežnika TLS, zato mora potrdilo nasprotne strani dejansko razglasiti ta namen. Potrdilo, izdano za preverjanje pristnosti odjemalca, tega ne izpolnjuje, tudi ko je isti organ podpisal oba.

To je pomembno, ker je deljeni CA pogost v majhnih uvajanjih. En organ podpiše vsakega odjemalca in strežnik, in brez preverjanja vloge bi katero koli od teh potrdil lahko dokončalo strežniško stran rokovanja. Preverjanje tega scenarija ne naredi nemogočega, ampak odstrani njegovo trivialno različico.

Direktiva je po zasnovi asimetrična: odjemalci nosijo remote-cert-tls server, strežniki pa remote-cert-tls client. Zamenjajte jih in vsaka povezava spodleti z napako vloge, ki je videti kot pokvarjeno potrdilo.

Starejši profili včasih uporabljajo ns-cert-type za isti namen. Trenutne strani priročnika to možnost obravnavajo kot nadomeščeno, zato profil, ki se še vedno zanaša nanjo, si zasluži selitev, ne razhroščevanje.

Zakaj je izklop videti kot popravek

Ko preverjanje vloge spodleti, se povezava ustavi z napako preverjanja in očitna poteza je izbrisati vrstico. Povezava se nato dvigne, kar je videti kot napredek in je v resnici način okvare, ki naj bi ga direktiva preprečila. Zdaj sprejmete nasprotno stran, katere potrdilo ni bilo nikoli namenjeno tej vlogi.

Namesto tega preberite napako. Navaja preverjanje, ki je spodletelo, potrdilo na drugi strani pa je mogoče pregledati, da vidite, katere razširitve res nosi. Dve minuti branja odločita, ali je napaka pri izdaji ali pri konfiguraciji. Ugibanje stane popoldne in se običajno konča z oslabljenim profilom. Obnovljeno strežniško potrdilo, ki je izgubilo razširjeno uporabo ključa, je resnična napaka pri obnovitvi, ne razlog za popuščanje pri odjemalcu.

Preverjanje imena je ločena direktiva

Izpolnjevanje preverjanja vloge pove, da je nasprotna stran neki strežnik, ki ga je podpisal vaš organ. Ne pove, kateri, kar je pomembno, ko isti CA izdaja potrdila za več prehodov in je eden od njih ogrožen ali preusmerjen.

verify-x509-name primerja subjekt potrdila z vrednostjo, ki jo nastavite, z načini ujemanja za točen subjekt, predpono ali eno polje. Uporabite polje, ki dejansko identificira prehod, in pričakujte, da ga boste ob spremembi imena namerno posodobili.

Nobena od direktiv ne nadomesti dobrega ravnanja s ključi. Če se datoteka odjemalčevega ključa kopira naokoli skupaj s profilom, je identiteta nasprotne strani le toliko močna, kolikor je močan distribucijski seznam.

Preglejte potrdilo, preden uredite profil

Preberite potrdilo nasprotne strani in dnevnik odjemalca v tem vrstnem redu. Potrdilo vam pove, katere vloge razglaša; dnevnik vam pove, katero preverjanje ga je zavrnilo.

Ti ukazi izpišejo razširitve uporabe in vrstice preverjanja iz podrobne povezave:

openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verify

Če razširitve kažejo vlogo strežnika in dnevnik še vedno poroča o okvari vloge, profil verjetno kaže na napačno datoteko potrdila in ne na slabo potrdilo. Če razširitve kažejo le preverjanje pristnosti odjemalca, prenehajte gledati odjemalca in popravite izdajo. V vsakem primeru obnovite preverjanje, preden povezavo razglasite za zdravo, ker uspešno rokovanje po odstranitvi preverjanja dokaže manj kot napaka, ki jo je nadomestilo.

Sorodni članki