Vložíte jednořádkový instalační příkaz z návodu, stisknete Enter a dostanete curl: (77). Zpráva zmiňuje umístění ověření certifikátu, takže instinkt je předpokládat, že certifikát poskytovatele VPN je rozbitý, a sáhnout po přepínači, který ověření přeskočí. To čtení je špatné a jednání podle něj mění lokální problém se souborem v bezpečnostní rozhodnutí. Vraťme se na začátek.

Krok 1: přečtěte si, co číslo znamená

Chyba 77 se týká lokálního vstupu CA: curl nedokázal přečíst ani načíst certifikátový materiál, kterému mu bylo řečeno důvěřovat. Chyba 60 je ta o protistraně, kdy řetězec serveru neprojde ověřením. V návodech stojí vedle sebe a znamenají opačné věci.

Pokud váš výstup říká 77, server nikdy nebyl problém. Klient nedokázal otevřít soubor, který chtěl použít pro kontrolu, a to je problém cesty, oprávnění nebo balení na vašem počítači.

Krok 2: přečtěte si příkaz, který jste zkopírovali

Zkopírované příkazy skrývají znaky. Malé -l je --list-only, které se vztahuje k výpisu protokolů. Velké -L je --location, které následuje přesměrování HTTP. Nejsou to alternativní zápisy a návod, který píše jedno, zatímco popisuje druhé, posílá lidi po cestě přesměrování, která nebyla nikdy zamýšlena.

Následování přesměrování neopraví cestu k úložišti důvěry a nedokáže, že konečný hostitel je vydavatel, kterého jste mysleli. Pokud příkaz pochází z příspěvku na fóru, přepište ho z vlastních pokynů projektu, místo abyste věřili vloženému textu.

Krok 3: zjistěte, který vstup CA tento build používá

Začněte identifikací binárky, protože odpověď závisí na tom, jak byla zkompilována:

curl --version

Zapište verzi a TLS backend. Build s nativním úložištěm důvěry čte systémové úložiště přes knihovnu TLS, zatímco build nasměrovaný na bundle čte soubor. Explicitní --cacert, nastavení CURL_CA_BUNDLE nebo obal shellu mohou kteréhokoli z nich přebít, takže instalace z balíčku se nemusí dotknout souboru, který skutečně selhává.

U úložiště založeného na souboru zkontrolujte tři věci v pořadí: zda cesta existuje, zda ji účet, který příkaz volá, může číst a zda obsahuje materiál CA, který očekáváte. Bundle se špatnými oprávněními selhává stejně jako chybějící a oba selhávají dřív, než dojde k jakékoli síťové konverzaci o serveru.

Krok 4: opravte vstup, ne ověřování

Obnovte podporovanou konfiguraci důvěry prostřednictvím toho, komu patří: distribučního balíčku, vaší správy konfigurace nebo dokumentované proměnné prostředí. Cílem je čitelný a správný vstup CA pro tuto binárku.

Nepřepínejte URL na HTTP, nepřidávejte --insecure a nedůvěřujte certifikátu zkopírovanému z nevysvětleného stažení. Každá z těchto změn mění to, co jste ochotni přijmout, místo aby opravila to, co curl nedokázal přečíst, a změna obvykle přežije incident.

Referencí k číslům je katalog chyb curl a je dost krátký na to, abyste si ho jednou pořádně přečetli.

Krok 5: stáhněte, podívejte se, pak spusťte

Stáhněte instalátor do souboru, místo abyste ho ve stejném příkazu posílali do shellu. Tato jediná změna odděluje přenos, který můžete prohlédnout, od kódu, který běží s vašimi oprávněními.

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

Zkontrolujte, že odpověď je skript, který jste očekávali, a ne HTML chybová stránka, oznámení o přesměrování nebo prázdný soubor. Pokud vydavatel poskytuje kontrolní součet nebo podpis, ověřte ho přes jejich dokumentovaný proces vydání, ne přes hodnotu citovanou ve stejném vlákně fóra.

Pamatujte, co HTTPS udělal a co ne. Ověřil přenos k hostiteli, se kterým jste se spojili; nezkontroloval obsah skriptu a neříká vám, zda je vydavatel důvěryhodný.

Krok 6: držte instalační kroky oddělené

Stažení souboru, instalace klienta, konfigurace tunelu a ověření tras jsou čtyři operace se čtyřmi různými režimy selhání. Dělat je po jednom znamená, že chyba později v pořadí má jednu zřejmou příčinu místo čtyř kandidátů.

Pokud instalace uspěje a tunel se zvedne, ověřte trasy a jeden skutečný cíl, než zavřete tiket. Chyba curl je opravená, když jednoduchý curl -I https://example.invalid znovu funguje, ne když si instalátor přestane stěžovat.

Související články