Si e zgjidh OpenVPN certifikatën dhe çelësin: PEM i brendshëm apo shteg
E njëjta direktivë mban ose një shteg skedari ose një objekt PEM të brendashkruar. Lexoni cilën prej tyre përdor profili i ngarkuar përpara se të zhvendosni certifikata.
Mesazhi thotë se OpenVPN nuk mund të ngarkojë një certifikatë të brendshme, ndërsa emri i skedarit që mbani në mendje thotë të kundërtën. Ajo që mori analizuesi ka më shumë rëndësi sesa ajo që përmban sistemi i skedarëve, sepse direktiva cert pranon dy lloje krejt të ndryshme vlere. Njëra është një shteg që hap; tjetra është tekst PEM që mbërriti brenda konfigurimit. Derisa të dini cilën formë mori klienti që po punon, çdo rregullim është hamendje.
Dy forma ruajtjeje, një direktivë
Direktivat cert, key dhe ca pranojnë secila një shteg ose një bllok të brendshëm. Kur vlera është shteg, OpenVPN hap atë skedar dhe lexon objektin nga disku. Kur konfigurimi përmban një bllok të kufizuar nga etiketa cert, e njëjta direktivë konsumon në vend të kësaj përmbajtjen mes atyre etiketave, dhe asnjë skedar i veçantë nuk përfshihet.
Të dyja format prodhojnë në fund të njëjtin lloj objekti, prandaj një vendosje funksionale mund të kalojë mes tyre pa asnjë ndryshim tjetër. Një profil që mban një certifikatë klienti dhe një çelës privat të brendashkruar është i vetëmjaftueshëm, dhe kopjimi i tij në një makinë tjetër funksionon pa kopjuar edhe një drejtori certifikatash.
E kundërta nuk është e vërtetë. Vendosja e client.crt pranë një profili që brendashkruan të dhënat e veta nuk ndryshon asgjë, sepse asgjë në konfigurim nuk i referohet atij skedari. Kjo është arsyeja më e zakonshme pse një skedar që ekziston qartë duket i anashkaluar.
Si një bllok i brendshëm bëhet objekt
Përmbajtja e brendshme nxirret nga konfigurimi dhe i dorëzohet analizuesit PEM si tekst. Ai analizues pret kufijtë e zakonshëm: një rresht BEGIN, një ngarkesë base64 dhe një rresht END që përputhet. Nëse blloku u pre nga një kopje e dështuar, u mbështoll në HTML nga një faqe shkarkimi ose u hap në një editor që normalizoi vizat, analizuesi dështon në përmbajtje që duket e pranishme.
<cert>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>
Për këtë arsye edhe formulimi i gabimit është mashtrues. Fjala i brendshëm përshkruan ku shikoi ngarkuesi, jo çfarë gjeti atje. Një skedar i emërtuar në një konfigurim dhe një objekt i brendashkruar në të mund të prodhojnë të njëjtin ankesë kur bajtët themelorë janë të papërdorshëm.
Kontrolloni cilën formë përdor vërtet profili i ngarkuar, jo cilin skedar hapi rastësisht editori juaj:
grep -nE '^(ca|cert|key) |^<(ca|cert|key)>' client.ovpn
Si zgjidhet një referencë shtegu
Një vlerë shtegu hapet në lidhje me drejtorinë e punës të klientit, jo me drejtorinë që përmban konfigurimin. Nën systemd ajo drejtori pune është ajo që cakton njësia, dhe një ekzekutim interaktiv nga shell-i juaj trashëgon diçka krejt tjetër. Prandaj i njëjti skedar konfigurimi mund të funksionojë kur e provoni me dorë dhe të dështojë si shërbim.
Shtigjet relative trashëgojnë të njëjtën paqartësi. Kur shihni një emër skedari të zhveshur, pyesni cila është drejtoria aktuale e procesit në prodhim në vend që të supozoni se përputhet me terminalin tuaj.
Për një certifikatë të ruajtur veçmas, një analizë jashtë linje konfirmon objektin përpara se të korrigjoni çdo gjë mbi të:
openssl x509 -in client.crt -noout -subject -issuer -dates
openssl pkey -in client.key -noout -check
Ato komanda vërtetojnë se skedarët janë të lexueshëm dhe strukturalisht të vlefshëm. Ato nuk vërtetojnë se pala tjetër i beson lëshuesit, se certifikata është ende brenda dritares së vlefshmërisë ose se çelësi i përket asaj.
Çfarë mund dhe çfarë nuk mund t'ju thotë gabimi i analizuesit
Një dështim analize e lokalizon problemin në një hyrje dhe një etapë. Nuk ju thotë cilën nga dy format e ruajtjes përdori klienti, dhe nuk ju thotë nëse objekti do të ishte pranuar. Këto janë pyetje të ndara me prova të ndara.
Pasi analiza ka sukses, dështimi tjetër i përket një etape më të vonë. Një refuzim besimi, një mospërputhje qëllimi ose një mospërputhje çelësi raportohen nga pala tjetër ose nga shtresa TLS, jo nga ngarkuesi. Zëvendësimi i përsëritur i të njëjtit skedar nuk do ta zhvendosë atë gabim.
Mbajeni gjysmën e ndjeshme jashtë raporteve publike gjatë hetimit. Ndani emrat e direktivave, tekstin e gabimit dhe strukturën e bllokut, me materialin e çelësit dhe çdo ngarkesë identifikuese të hequr. Manuali openvpn(8) dokumenton të dyja format e direktivave të skedarit dhe sjelljen e drejtorisë së punës pas tyre.