Įklijuojate vienos eilutės diegimo komandą iš mokymo ir paspaudžiate Enter, o gaunate curl: (77). Pranešime minimos sertifikato tikrinimo vietos, todėl instinktas yra manyti, kad VPN tiekėjo sertifikatas sugedęs, ir siekti vėliavėlės, kuri praleidžia tikrinimą. Toks skaitymas neteisingas, o juo vadovaujantis vietinė failo problema tampa saugumo sprendimu. Grįžkime prie pradžios.

1 žingsnis: perskaitykite, ką reiškia skaičius

77 klaida susijusi su vietine CA įvestimi: curl negalėjo perskaityti ar įkelti sertifikato medžiagos, kuria jam buvo liepta pasitikėti. 60 klaida yra apie kitą šalį, kai serverio grandinė nepatvirtinama. Mokymuose jos pateikiamos greta ir reiškia priešingus dalykus.

Jei jūsų išvestis sako 77, serveris niekada nebuvo problema. Klientas negalėjo atidaryti failo, kurį norėjo naudoti patikrinimui, ir tai yra kelio, leidimų ar pakavimo problema jūsų kompiuteryje.

2 žingsnis: perskaitykite komandą, kurią nukopijavote

Nukopijuotos komandos slepia simbolius. Mažoji -l yra --list-only, kuri taikoma protokolų sąrašui. Didžioji -L yra --location, kuri seka HTTP peradresavimą. Tai ne alternatyvios rašybos, o mokymas, kuris rašo vieną ir aprašo kitą, nukreipia žmones peradresavimo keliu, kuris niekada nebuvo numatytas.

Peradresavimo sekimas nepataiso patikimos saugyklos kelio ir neįrodo, kad galutinis hostas yra leidėjas, kurį turėjote omenyje. Jei komanda kilusi iš forumo įrašo, perrašykite ją iš paties projekto instrukcijų, o ne pasitikėkite įklijuotu tekstu.

3 žingsnis: išsiaiškinkite, kurią CA įvestį naudoja ta kompilacija

Pradėkite nuo binario identifikavimo, nes atsakymas priklauso nuo to, kaip jis sukompiliuotas:

curl --version

Užsirašykite versiją ir TLS backend. Kompiliacija su natūralia patikima saugykla skaito sistemos saugyklą per TLS biblioteką, o į paketą nukreipta kompiliacija skaito failą. Aiškus --cacert, CURL_CA_BUNDLE nustatymas arba shell apvalkalas gali nepaisyti bet kurio iš jų, todėl diegimas iš paketo gali net nepaliesti failo, kuris iš tikrųjų nepavyksta.

Failinės saugyklos atveju patikrinkite tris dalykus iš eilės: ar kelias egzistuoja, ar jį gali perskaityti komandą iškviečianti paskyra ir ar jame yra laukiama CA medžiaga. Paketas su neteisingais leidimais nepavyksta taip pat kaip trūkstamas, ir abu nepavyksta prieš bet kokį tinklo pokalbį apie serverį.

4 žingsnis: taisykite įvestį, o ne tikrinimą

Atkurkite palaikomą patikimumo konfigūraciją per jos savininką: paskirstymo paketą, jūsų konfigūracijos valdymą arba dokumentuotą aplinkos kintamąjį. Tikslas – tam binariui skaitoma ir teisinga CA įvestis.

Neperjunkite URL į HTTP, nepridėkite --insecure ir nepasitikėkite sertifikatu, nukopijuotu iš nepaaiškinto atsisiuntimo. Kiekvienas iš šių pakeitimų keičia tai, ką esate pasirengę priimti, užuot pataisę tai, ko curl negalėjo perskaityti, ir pakeitimas paprastai išgyvena incidentą.

Skaičių nuoroda yra curl klaidų katalogas, ir jis pakankamai trumpas, kad jį vieną kartą atidžiai perskaitytumėte.

5 žingsnis: atsisiųskite, pažiūrėkite, tada vykdykite

Atsisiųskite diegimo programą į failą, o ne perduokite ją shellui toje pačioje komandoje. Šis vienas pakeitimas atskiria peržiūrimą perdavimą nuo kodo, kuris vykdomas su jūsų teisėmis.

curl -fL -o vpn-installer.sh https://example.invalid/install.sh
file vpn-installer.sh
head -n 40 vpn-installer.sh

Patikrinkite, ar atsakymas yra laukiamas scenarijus, o ne HTML klaidos puslapis, peradresavimo pranešimas ar tuščias failas. Jei leidėjas pateikia kontrolinę sumą ar parašą, patikrinkite ją per jų dokumentuotą leidimo procesą, o ne per vertę, cituojamą toje pačioje forumo temoje.

Prisiminkite, ką HTTPS padarė ir ko nepadarė. Jis autentifikavo transportą iki hosto, su kuriuo susisiekėte; jis neperžiūrėjo scenarijaus turinio ir nepasako, ar leidėju galima pasitikėti.

6 žingsnis: laikykite diegimo veiksmus atskirai

Failo atsisiuntimas, kliento diegimas, tunelio konfigūravimas ir maršrutų tikrinimas yra keturios operacijos su keturiais skirtingais gedimo būdais. Atliekant jas po vieną, vėlesnė sekoje klaida turi vieną akivaizdžią priežastį vietoj keturių kandidatų.

Jei diegimas pavyksta ir tunelis pakyla, prieš uždarydami bilietą patikrinkite maršrutus ir vieną realią paskirties vietą. curl klaida ištaisyta tada, kai paprastas curl -I https://example.invalid vėl veikia, o ne tada, kai diegimo programa nustoja skųstis.

Susiję straipsniai