Kuidas OpenVPN sertifikaadi ja võtme lahendab: inline-PEM või failitee
Sama direktiiv kannab kas failiteed või manustatud PEM-objekti. Lugege, kumb laaditud profiil kasutab, enne kui te sertifikaate kuhugi liigutate.
Teade ütleb, et OpenVPN ei suuda manustatud sertifikaati laadida, ja failinimi, mis teil peas on, väidab vastupidist. See, mille parser sai, loeb rohkem kui see, mida failisüsteem sisaldab, sest direktiiv cert võtab vastu kahte täiesti erinevat tüüpi väärtust. Üks on tee, mille see avab; teine on PEM-tekst, mis saabus konfiguratsiooni sees. Kuni te ei tea, millise kuju jooksev klient sai, on iga parandus oletus.
Kaks hoiustamisviisi, üks direktiiv
Direktiivid cert, key ja ca võtavad igaüks vastu kas tee või manustatud ploki. Kui väärtus on tee, avab OpenVPN selle faili ja loeb objekti kettalt. Kui konfiguratsioon sisaldab cert-siltidega piiratud plokki, tarbib sama direktiiv selle asemel nende siltide vahelise sisu ja eraldi fail ei ole kaasatud.
Mõlemad kujud annavad lõpuks sama tüüpi objekti, mistõttu töötav juurutus saab nende vahel liikuda ilma ühegi muu muudatuseta. Profiil, mis kannab manustatud kliendisertifikaati ja privaatvõtit, on iseseisev, ja selle kopeerimine teise masinasse toimib ka ilma sertifikaatide kataloogi kopeerimata.
Vastupidine ei kehti. client.crt faili panemine profiili kõrvale, mis manustab oma andmed, ei muuda midagi, sest miski konfiguratsioonis ei viita sellele failile. See on kõige tavalisem põhjus, miks fail, mis selgelt olemas on, näib olevat eiratud.
Kuidas manustatud plokk saab objektiks
Manustatud sisu tõmmatakse konfiguratsioonist välja ja antakse PEM-parserile tekstina. See parser ootab tavapäraseid piire: BEGIN-rida, base64-kandekoormust ja sobivat END-rida. Kui plokk kärbiti ebaõnnestunud kopeerimise tõttu, mähiti allalaadimislehe poolt HTML-i või avati redaktoris, mis normaliseeris sidekriipsud, siis parser ebaõnnestub sisul, mis näib olevat kohal.
<cert>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>
Seepärast on ka veateade eksitav. Sõna manustatud kirjeldab, kuhu laadija vaatas, mitte mida see seal leidis. Konfiguratsioonis nimetatud fail ja sinna manustatud objekt võivad tekitada sama kaebuse, kui aluseks olevad baidid on kasutuskõlbmatud.
Kontrollige, millist kuju laaditud profiil tegelikult kasutab, mitte millise faili teie redaktor juhtumisi avas:
grep -nE '^(ca|cert|key) |^<(ca|cert|key)>' client.ovpn
Kuidas teeviidet lahendatakse
Teeväärtus avatakse kliendi töökataloogi suhtes, mitte konfiguratsiooni sisaldava kataloogi suhtes. systemd all on see töökataloog see, mille unit määrab, ja teie shellist käivitatud interaktiivne jooks pärib hoopis midagi muud. Seepärast võib sama konfiguratsioonifail käsitsi testides toimida ja teenusena ebaõnnestuda.
Relatiivsed teed pärivad sama mitmetähenduslikkuse. Kui näete paljast failinime, küsige, milline on protsessi praegune kataloog tootmises, selle asemel et eeldada, et see ühtib teie terminaliga.
Eraldi hoitava sertifikaadi puhul kinnitab võrguühenduseta parsimine objekti enne, kui te midagi sellest kõrgemal silute:
openssl x509 -in client.crt -noout -subject -issuer -dates
openssl pkey -in client.key -noout -check
Need käsud tõestavad, et failid on loetavad ja struktuurselt kehtivad. Need ei tõesta, et vastaspool usaldab väljaandjat, et sertifikaat on endiselt kehtivusaknas või et võti kuulub selle juurde.
Mida parseri viga teile öelda saab ja mida mitte
Parsimise ebaõnnestumine lokaliseerib probleemi ühte sisendisse ja ühte etappi. See ei ütle, millist kahest hoiustamisviisist klient kasutas, ega ütle, kas objekt oleks vastu võetud. Need on eraldi küsimused eraldi tõenditega.
Kui parsimine õnnestub, kuulub järgmine ebaõnnestumine hilisemale etapile. Usalduse tagasilükkamise, otstarbe mittevastavuse või võtme mittevastavuse teatab vastaspool või TLS-kiht, mitte laadija. Sama faili korduv asendamine ei liiguta seda viga.
Hoidke tundlik pool uurimise ajal avalikest aruannetest väljas. Jagage direktiivide nimesid, veatekset ja ploki struktuuri, olles eemaldanud võtmematerjali ja kogu identifitseeriva kandekoormuse. openvpn(8) käsiraamat dokumenteerib failidirektiivide mõlemad vormid ja nende taga oleva töökataloogi käitumise.