Wéi OpenVPN den Zertifikat an de Schlëssel opléist: inline PEM oder Pad
Déiselwecht Direktiv dréit entweder e Dateipad oder en agebettent PEM-Objet. Liest, wéi eng vun deenen zwee de geluedene Profil benotzt, ier Dir Zertifikater verréckelt.
D'Messung seet, datt OpenVPN en Inline-Zertifikat net ka lueden, an den Dateinumm, deen Dir am Kapp hutt, seet eppes anescht. Wat de Parser kritt huet, ass méi wichteg wéi wat d'Dateisystem enthält, well d'Direktiv cert zwee komplett verschidden Aarte vu Wäert unhëlt. Eng ass e Pad, deen se opmécht; déi aner ass PEM-Text, deen innerhalb vun der Konfiguratioun ukomm ass. Bis Dir wësst, wéi eng Form de lafende Client kritt huet, ass all Korrektur eng Viraussetzung.
Zwee Späicherformen, eng Direktiv
D'Direktive cert, key an ca huelen all Kéier e Pad oder en Inline-Block un. Wann de Wäert e Pad ass, mécht OpenVPN déi Datei op a liest den Objet vun der Plack. Wann d'Konfiguratioun en Block enthält, deen duerch cert-Tags begrenzt ass, verbraucht déiselwecht Direktiv amplaz den Inhalt tëschent dësen Tags, an et ass keng separat Datei bedeelegt.
Béid Formen erginn um Enn déiselwecht Aart vun Objet, dofir kann eng funktionéierend Deployement tëschent hinne wiesselen ouni eng aner Ännerung. E Profil, deen en agebettent Clientzertifikat an e private Schlëssel dréit, ass selbstänneg, an en op eng aner Maschinn ze kopéieren funktionéiert och ouni en Zertifikatsverzeechnis ze kopéieren.
D'Ëmgedréint ass net richteg. client.crt nieft e Profil ze leeën, dee seng eegen Daten abett, ännert näischt, well näischt an der Konfiguratioun op déi Datei verweist. Dëst ass dee heefegste Grond, firwat eng Datei, déi kloer existéiert, ignoréiert schéngt ze ginn.
Wéi en Inline-Block en Objet gëtt
Den Inline-Inhalt gëtt aus der Konfiguratioun extrahéiert an dem PEM-Parser als Text iwwerginn. Dee Parser erwaart déi üblech Grenzen: eng BEGIN-Zeil, eng base64-Liwwerung an eng passend END-Zeil. Wann de Block duerch eng gescheitert Kopie ofgeschnidden gouf, vun enger Downloadsäit an HTML agewéckelt gouf oder an engem Editeur opgemaach gouf, deen d'Bëndestréch normaliséiert huet, da scheitert de Parser op Inhalt, deen do ze sinn schéngt.
<cert>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>
Dofir ass och d'Formuléierung vum Feeler irreführend. D'Wuert inline beschreift, wou de Lueder nogekuckt huet, net wat en do fonnt huet. Eng Datei, déi an enger Konfiguratioun genannt gëtt, an en Objet, deen do agebett ass, kënnen déiselwecht Plainte produzéieren, wann d'Grondbytes net benotzbar sinn.
Préift wéi eng Form de geluedene Profil tatsächlech benotzt, net wéi eng Datei Ären Editeur zoufälleg opgemaach huet:
grep -nE '^(ca|cert|key) |^<(ca|cert|key)>' client.ovpn
Wéi eng Padreferenz opgeléist gëtt
E Padwäert gëtt relativ zum Aarbechtsverzeechnis vum Client opgemaach, net zum Verzeechnis, dat d'Konfiguratioun enthält. Ënner systemd ass dat Aarbechtsverzeechnis dat, wat d'Unit setzt, an eng interaktiv Ausféierung aus Ärer Shell ierft eppes ganz anescht. Dofir kann déiselwecht Konfiguratiounsdatei funktionéieren, wann Dir se vun Hand testt, a s'et als Service feelt.
Relativ Pade ierwen déiselwecht Onkloerheet. Wann Dir en nackten Dateinumm gesitt, frot, wat den aktuellen Verzeechnis vum Prozess an der Produktioun ass, amplaz unzehuelen, datt en Ärem Terminal entsprécht.
Fir en Zertifikat, deen separat gespäichert ass, bestätegt eng Offline-Analyse den Objet, ier Dir iergendeppes driwwer debugt:
openssl x509 -in client.crt -noout -subject -issuer -dates
openssl pkey -in client.key -noout -check
Déi Kommandoe beweise, datt d'Dateien liesbar a strukturell gülteg sinn. Si beweise net, datt de Géigeniwwer dem Aussteller vertraut, datt den Zertifikat nach an sengem Gültegkeetsfenster ass oder datt de Schlëssel dozou gehéiert.
Wat de Parserfeeler Iech ka soen a wat net
En Analysfeeler lokaliséiert de Problem op eng eenzeg Input an eng eenzeg Etapp. En seet Iech net, wéi eng vun den zwou Späicherformen de Client benotzt huet, an en seet Iech net, ob den Objet akzeptéiert gi wier. Dat sinn getrennt Froen mat getrennte Beweiser.
Wann d'Analyse geléngt, gehéiert deen nächste Feeler zu enger méi spéider Etapp. Eng Vertrauensoflehnung, eng Zweckofwäichung oder eng Schlësselofwäichung gëtt vum Géigeniwwer oder vun der TLS-Schicht gemellt, net vum Lueder. D'déiselwecht Datei widderholl z'ersetzen wäert dee Feeler net verréckelen.
Haalt déi sensibel Hallschent wärend der Enquête aus ëffentleche Berichter eraus. Deelt d'Direktivnimm, den Feelertext an d'Struktur vum Block, mam Schlësselmaterial an all identifizéierend Liwwerung ewechgeholl. Den openvpn(8)-Handbuch dokumentéiert béid Formen vun den Dateidirektiven an d'Aarbechtsverzeechnis-Verhalen hannendrun.