Samopodpísaný klientsky certifikát? VPN server ho stále odmieta
Klientsky certifikát musí tvoriť reťaz k CA, ktorej server dôveruje, a samopodpísaný to nikdy nesplní. Tu je, čo môže CSR urobiť a čo si vyžiadať.
Operátor pošle adresu a používateľské meno a klient si vyžiada súbor CA, certifikát a kľúč. Vygenerovať tieto tri lokálne vyzerá ako zrejmý ďalší krok. Vznikne certifikát, ktorému verí len váš vlastný stroj. Dôvera servera je ukotvená v CA, ktorú nekontrolujete, takže handshake sa skončí skôr, než začne.
Dôvera žije na serveri, nie vo vašom profile
Overovanie certifikátom je porovnanie. Klient predloží certifikát; brána skontroluje, či ho podpísala niektorá z CA v jej konfigurácii.
Váš profil uvádza súbor CA, ktorý má klient použiť na overenie servera. Nemôže uviesť CA, ktorú má server použiť na overenie vás. Táto polovica konfigurácie nie je vaša.
Vlastnoručne vyrobený certifikát neprejde týmto porovnaním, aj keď je technicky bezchybný. Má platný podpis, subjekt aj dátumy, ale vydavateľom je CA, o ktorej brána nikdy nepočula. Chyba sa objaví počas handshake, potom čo server už o certifikát požiadal. Nič v klientskom profile nemôže odpoveď zmeniť.
Prečo samopodpísaný certifikát nemôže nahradiť
Samopodpísaný certifikát je podpísaný vlastným kľúčom. Podpis sa overuje proti tomu istému súboru, čo ho robí vnútorne konzistentným a nepoužiteľným ako preukaz pre cudziu bránu.
Brána sa nepýta, či je certifikát vnútorne konzistentný. Pýta sa, či ho podpísal dôveryhodný vydavateľ.
Preto sú chybové správy mätúce. Klient môže hlásiť zlyhanie overenia, ktoré znie ako problém servera, zatiaľ čo server zaznamenáva neznámeho vydavateľa. Oba opisujú ten istý nesúlad z opačných strán.
Cesta cez CSR zachová váš súkromný kľúč
Väčšinu práce stále môžete urobiť lokálne. Vygenerujte pár kľúčov, zostavte žiadosť o podpísanie certifikátu okolo verejnej polovice a pošlite túto žiadosť operátorovi. Zo stroja odchádza len žiadosť. Súkromná polovica zostáva tam, kde ste ju vytvorili.
openssl req -new -newkey rsa:3072 -nodes -keyout client.key -out client.csr -subj "/CN=laptop-01"
Operátor žiadosť podpíše svojou CA a vráti certifikát. Váš súkromný kľúč nikdy necestoval a výsledok tvorí reťaz ku kotve, ktorej brána dôveruje.
Spravované služby často žiadosť CSR preskočia a vydajú celý balík. Je to rozumná výmena, keď ten istý poskytovateľ už ukončuje tunel a drží CA. Úschova kľúča sa nezlepší tým, že si ho ponecháte, pretože poskytovateľ môže kedykoľvek vyraziť nový.
Balíky sa importujú, neinštalujú
Dodávateľské balíky s bezpečne znejúcimi názvami sú často profily OpenVPN. Obsahujú konfiguráciu a niekedy certifikáty a nič neinštalujú. Importujte súbor do klienta, ktorý hovorí daným protokolom, a spojenie je nakonfigurované.
Pravidlo zaobchádzania vyplýva z obsahu. Ak profil obsahuje súkromný kľúč, je to preukaz a zaslúži si rovnakú starostlivosť ako heslo: žiadny e-mail, žiadne úložisko, žiadny zdieľaný priečinok sťahovania. Keď operátor dodá ca.crt, client.crt a client.key oddelene, uložte ich spolu s obmedzujúcimi právami a nasmerujte na ne profil.
Pridajte kontroly, ktoré operátor mohol vynechať
Profil vytvorený routerom niekedy nemá overenie partnera. remote-cert-tls server vyžaduje, aby certifikát partnera niesol účel overenia servera, takže klientsky certifikát nemožno prehrať ako server. Ten jeden riadok je malá zmena s jasným odôvodnením.
verify-x509-name ide ďalej, keď operátor môže uviesť očakávaný subjekt alebo SAN. Obe sú malé doplnenia profilu a obe sú obhájiteľné. Preskúmajte, čo ste dostali, predtým ako to importujete.
openssl x509 -in client.crt -noout -issuer -subject -dates
openssl verify -CAfile ca.crt client.crt
Nastavenia overovania nie sú oprava prerušeného reťazca. Ak je vydavateľ nesprávny, odpoveďou je certifikát od správnej CA, nie prepínač, ktorý overovanie vypne. Vypnutie overovania mení zlyhanie autentifikácie na neodhalené.
Požiadajte o jeden balík: certifikát autority vo formáte PEM, klientsky certifikát podpísaný touto autoritou, kľúč, ktorý ste vygenerovali alebo ktorý prišiel kanálom, ktorému dôverujete, a presný názov servera, ktorý má certifikát predstaviť. Poznačte dátum expirácie v tej istej správe, pretože expirovaný certifikát vyzerá o mesiace neskôr ako sieťová závada.