Zašto cryptoapicert ne radi u OpenVPN 3 i Connectu na Windowsu
Direktiva pripada jednom Windows klijentu, a ne protokolu. Osnovna knjižnica nudi povratne pozive za potpisivanje, a frontend ima vlastiti tijek uvoza.
Kopirate radni OpenVPN 2 profil u noviji Windows klijent, a certifikat koji je stari klijent sam pronalazio više se ne nudi. Redak koji je to omogućio jest selektor specifičan za Windows koji pripada klijentu Community 2, a novija aplikacija je drugi program s drugim putem vjerodajnica. Profil je nepromijenjen osim tog jednog retka, i upravo to čini razliku teško vidljivom.
U tom se izvješću miješaju tri sloja: klijent Community, osnovna knjižnica i frontend koji je netko instalirao. Samo je jedan od njih ikada razumio direktivu.
Što opcija znači tamo gdje postoji
U klijentu Community OpenVPN 2 na Windowsu, cryptoapicert označava certifikat koji klijent treba pronaći u Windows spremištu certifikata, a ne u datoteci. To je pogodnost specifična za Windows i radi jer taj klijent zna nabrojati spremište i predati dobiveni ključ svom vlastitom TLS stogu. Direktiva je stoga dio jezika konfiguracije tog klijenta, a ne svojstvo OpenVPN protokola. Ništa u formatu prijenosa je ne nosi.
Kopirajte isti redak u drugu aplikaciju i kopirali ste riječ koju novi program može parsirati, ignorirati ili odbiti. Direktiva nije protokolna funkcija, a ova čak nije ni funkcija svakog klijenta koji govori OpenVPN.
Što osnovna knjižnica nudi umjesto toga
OpenVPN 3 Core je knjižnica koju druge aplikacije ugrađuju i vanjske vjerodajnice obrađuje kroz API, a ne pretraživanjem spremišta. Aplikacija koja je ugrađuje dostavlja lanac certifikata i kasnije traži od knjižnice da potpiše vanjskim ključem, a knjižnica se vraća u aplikaciju da to učini. To je općenitiji dizajn i znači da frontend odlučuje koji davatelji postoje. U vlastitoj obradi opcija knjižnice cryptoapicert se pojavljuje među direktivama koje nisu implementirane, što je u skladu s tom podjelom odgovornosti.
Postojanje tih povratnih poziva ne znači da određena pakirana aplikacija nabraja osobno spremište trenutačnog korisnika, podržava određenog davatelja ključeva ili može dovršiti upit pametne kartice. To su svojstva frontenda i svako od njih frontend mora dokumentirati.
Što umjesto toga radi Windows frontend
OpenVPN Connect ide drugim putem: operater uvozi PKCS#12 datoteku koja sadrži certifikat i njegov privatni ključ u OpenVPN Certificate Store stvoren u tu svrhu, a zatim dodjeljuje vanjski certifikat profilu. To je namjeran korak uvoza, a ne automatsko otkrivanje onoga što se slučajno nalazi u osobnom spremištu. Razlika je važna kada netko pretpostavi da će se certifikat instaliran u drugu svrhu jednostavno pojaviti na popisu klijenta.
Uvoz ima posljedicu i za politiku ključeva, jer je izvoz ključa u P12 datoteku upravo ono što je neizvozivi ključ namijenjen spriječiti. To je pitanje politike, a ne konfiguracije, i zaslužuje odgovor prije nego što netko pokuša uvoz.
Odaberite put koji odgovara politici ključa
Ako je vjerodajnica izvoziva i politika dopušta dokumentirani uvoz, koristite zaštićeni proces registracije organizacije i držite privremeni P12 i njegovu lozinku izvan dnevnika i skripti. Ako ključ nikada ne smije napustiti pametnu karticu ili zaštićenog davatelja, odaberite kombinaciju klijenta i davatelja koja izričito podržava taj zahtjev ili pribavite potvrdu od dobavljača za verziju koju ste instalirali. Nijedna grana nije zaobilazni put za drugu.
Vraćanje direktive u profil ne može pružiti integraciju koju aplikacija nema. Niti je novija verzija klijenta nužno dodaje, jer sposobnost pripada vlastitom dizajnu frontenda.
Kad lokalni ključ proradi, poslužitelj i dalje provjerava identitet certifikata, lanac i autorizaciju. Upotrebljiv lokalni ključ i prihvaćen VPN identitet odvojeni su ishodi, a njihovo razdvajanje ono je što sprječava da se ograničenje frontenda pretvori u oslabljenu politiku certifikata.