OpenVPN verify-x509-name: subject, name a name-prefix
Typ porovnania rozhoduje, ktoré meno certifikátu sa porovnáva. subject, name a name-prefix nie sú rovnocenné očakávania a predvolená je subject.
Najprv si prečítajte typ porovnania a potom text: verify-x509-name direktíva môže vyzerať správne a napriek tomu prijať certifikát, ktorému ste nechceli dôverovať. Dva riadky s rovnakým očakávaným textom, ale rôznymi typmi sú dve rôzne požiadavky. Najprv čítajte typ, potom text. Berte direktívu ako ďalšiu podmienku pripojenia, nie ako celú kontrolu.
Čo voľba naozaj tvrdí
Direktíva pomenúva identitu, ktorú musí niesť certifikát druhej strany. Keď porovnanie zlyhá, OpenVPN preruší handshake a tunel sa nezdvihne. Všetko ostatné v profile stále platí: certifikát sa musí zreťaziť k dôveryhodnej CA a kontrola roly musí prejsť, takže toto je dodatočná podmienka, nie náhrada. Profil, ktorý splní očakávanie mena a zlyhá v kontrole roly, je stále pokazený, a log to zvyčajne povie.
Líši sa aj od overovania názvu hostiteľa, ktoré robí prehliadač. Prehliadač porovnáva mená s alternatívnymi menami subject podľa pravidiel svojho TLS zásobníka, kým OpenVPN porovnáva jedno pole certifikátu s typom, ktorý ste vybrali. Preto vloženie názvu hostiteľa v štýle prehliadača do direktívy môže dať nezhodu aj vtedy, keď certifikát službu skutočne pokrýva.
subject: celé rozlišujúce meno, znak po znaku
Keď typ nie je napísaný, platí predvolená subject a očakávaná hodnota musí reprodukovať celé subject DN certifikátu. Poradie polí, oddeľovače, medzery a escapovanie sa všetky počítajú, pretože porovnanie beží na reťazci tak, ako je zakódovaný. Ak typ vynecháte, vybrali ste najprísnejšie z troch porovnaní. Neexistuje normalizačný krok, ktorý by zachránil kozmetický rozdiel. Je dobré to vedieť pred prvou obnovou, nie až po nej.
Táto prísnosť je krehká naprieč obnovami. CA, ktorá preusporadúva atribúty, vkladá pole navyše alebo mení spôsob escapovania hodnoty, vytvára pre ten istý stroj nový reťazec a direktíva, ktorá roky fungovala, začne pri ďalšom vydaní zlyhávať. Uchovanie prijatého DN v zázname zmien mení ďalšiu obnovu na rozdiel. Kde operátor zverejňuje celé DN a zaručuje jeho tvar, je subject rozumná voľba; inde je užšie pole ľahšie udržať v pravde.
name: jedno pole, zvyčajne všeobecné meno
Typ name porovnáva jedno pole subjektu. Ak profil nehovorí inak, tým poľom je všeobecné meno a očakávaná hodnota je presne toto pole, nie DN okolo neho.
Zádrhel je v tom, že moderné certifikáty nedávajú meno služby vždy do CN. Mnohé ho nesú v alternatívnom mene subject a CN nechávajú prázdne alebo všeobecné, takže certifikát, ktorý prehliadač prijme, môže v tomto porovnaní napriek tomu zlyhať. Prezrite si certifikát, ktorý vám bol skutočne vydaný, skôr než napíšete očakávanie, a potvrďte, ktoré pole profil vyberá. Prázdne CN porovnané s menom je nezhoda, nie konfiguračná nehoda.
name-prefix: zámerne široký, preto vymedzte rozsah
Očakávanie typu name-prefix zodpovedá začiatku zvoleného poľa. To je pohodlné pre schému pomenovania a nebezpečné pre čokoľvek zdieľané.
S vpn.example ako očakávaním by prešli obe vpn.example.com aj vpn.example.net za predpokladu, že zvyšok reťazca je dôveryhodný. Šírka je vlastnosť a zároveň časť, ktorú treba písomne odôvodniť. Prefix je rozumný, keď sú CA a schéma pomenovania vaše, a omnoho slabší, keď verejná CA vydáva v rovnakom vzore. Ak schéma potrebuje flexibilitu, obmedzte ju na CA, namiesto rozširovania kontroly klienta.
Vyberte typ podľa identifikátora a potom to dokážte
Pracujte odzadu od identity, ktorú operátor zamýšľa. Ak zverejňuje celé DN a drží ho stabilné, subject to vyjadruje. Ak službu pomenúva všeobecným menom, použite name. Ak vlastní schému pomenovania a prijíma celý jej priestor, name-prefix to hovorí výslovne.
Práve pri obnovách sa direktíva testuje. Porovnávajte schválenú identitu s novým certifikátom, nie so starým súborom, pretože nová adresa koncového bodu neznamená novú identitu certifikátu. Nemažte direktívu len preto, že známa adresa odpovedá: dostupnosť a zamýšľaná druhá strana sú rôzne skutočnosti, a adresa dokazuje len to, že niečo odpovedalo. Zaznamenajte presnú chybu a verejné údaje o mene do očisteného hlásenia, pretože nezhodu mena možno ukázať bez akéhokoľvek materiálu súkromného kľúča.
Po podporovanej oprave sa znova pripojte so všetkými zamýšľanými kontrolami a overte zdroj, ktorý skutočne potrebujete. Úspech znamená, že zamýšľaný server bol prijatý, nie že sa nejaký certifikát pretlačil. Oficiálna príručka OpenVPN 2.6 manual dokumentuje tri typy a ich poznámky o dôvere a je referenciou, ktorá sa cituje, keď sa rozhranie dodávateľa nezhoduje s profilom.