Wklejasz jednoliniową komendę instalatora z poradnika, naciskasz Enter i otrzymujesz curl: (77). Komunikat wspomina o lokalizacjach weryfikacji certyfikatu, więc odruch każe założyć, że certyfikat dostawcy VPN jest zepsuty, i sięgnąć po flagę pomijającą weryfikację. To odczytanie jest błędne, a działanie na jego podstawie zamienia lokalny problem z plikiem w decyzję bezpieczeństwa. Cofnijmy się do początku.

Krok 1: przeczytaj, co oznacza ten numer

Błąd 77 dotyczy lokalnego wejścia CA: curl nie mógł odczytać ani wczytać materiału certyfikatu, któremu miał zaufać. Błąd 60 dotyczy drugiej strony, gdy łańcuch serwera nie jest weryfikowany. W poradnikach stoją obok siebie i znaczą coś przeciwnego.

Jeśli dane wyjściowe mówią 77, serwer nigdy nie był problemem. Klient nie mógł otworzyć pliku, którego chciał użyć do sprawdzenia, a to problem ścieżki, uprawnień lub pakowania na twojej maszynie.

Krok 2: przeczytaj komendę, którą skopiowałeś

Skopiowane komendy ukrywają znaki. Małe -l to --list-only, które dotyczy listowania protokołów. Duże -L to --location, które podąża za przekierowaniem HTTP. To nie są alternatywne zapisy, a poradnik, który pisze jedno, opisując drugie, wysyła ludzi ścieżką przekierowania, której nigdy nie zamierzano.

Podążanie za przekierowaniem nie naprawia ścieżki magazynu zaufania i nie dowodzi, że końcowy host jest wydawcą, którego miałeś na myśli. Jeśli komenda pochodzi z postu na forum, wpisz ją ponownie z instrukcji samego projektu, zamiast ufać wklejce.

Krok 3: ustal, którego wejścia CA używa ta kompilacja

Zacznij od zidentyfikowania pliku binarnego, bo odpowiedź zależy od tego, jak go skompilowano:

curl --version

Zapisz wersję i backend TLS. Kompilacja z natywnym magazynem zaufania czyta magazyn systemowy przez bibliotekę TLS, a kompilacja wskazująca na pakiet czyta plik. Jawne --cacert, ustawienie CURL_CA_BUNDLE lub otoczka shell mogą nadpisać każde z nich, więc instalacja z pakietu może nawet nie dotknąć pliku, który faktycznie zawodzi.

Dla magazynu opartego na pliku sprawdź trzy rzeczy po kolei: czy ścieżka istnieje, czy konto wywołujące komendę może ją odczytać i czy zawiera oczekiwany materiał CA. Pakiet z błędnymi uprawnieniami zawodzi tak samo jak brakujący, a oba zawodzą przed jakąkolwiek rozmową sieciową o serwerze.

Krok 4: napraw wejście, a nie weryfikację

Przywróć obsługiwaną konfigurację zaufania przez tego, kto nią zarządza: pakiet dystrybucji, twoje zarządzanie konfiguracją lub udokumentowaną zmienną środowiskową. Celem jest czytelne i poprawne wejście CA dla tego pliku binarnego.

Nie przełączaj URL na HTTP, nie dodawaj --insecure i nie ufaj certyfikatowi skopiowanemu z niewyjaśnionego pobrania. Każda z tych zmian zmienia to, co jesteś gotów zaakceptować, zamiast naprawiać to, czego curl nie mógł odczytać, a zmiana zwykle przeżywa incydent.

Odniesieniem dla numerów jest katalog błędów curl, i jest wystarczająco krótki, by raz przeczytać go uważnie.

Krok 5: pobierz, obejrzyj, a potem uruchom

Pobierz instalator do pliku, zamiast przesyłać go potokiem do powłoki w tej samej komendzie. Ta jedna zmiana oddziela transfer, który możesz sprawdzić, od kodu uruchamianego z twoimi uprawnieniami.

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

Sprawdź, czy odpowiedź to oczekiwany skrypt, a nie strona błędu HTML, komunikat o przekierowaniu lub pusty plik. Jeśli wydawca podaje sumę kontrolną lub podpis, zweryfikuj je przez jego udokumentowany proces wydania, a nie przez wartość cytowaną w tym samym wątku forum.

Pamiętaj, co HTTPS zrobił, a czego nie. Uwierzytelnił transport do hosta, z którym się połączyłeś; nie przejrzał zawartości skryptu i nie mówi, czy wydawca jest godny zaufania.

Krok 6: trzymaj kroki instalacji osobno

Pobranie pliku, instalacja klienta, konfiguracja tunelu i walidacja tras to cztery operacje o czterech różnych trybach awarii. Wykonywanie ich po kolei oznacza, że błąd później w sekwencji ma jedną oczywistą przyczynę zamiast czterech kandydatów.

Jeśli instalacja się powiedzie i tunel wstanie, zweryfikuj trasy i jeden rzeczywisty cel, zanim zamkniesz zgłoszenie. Błąd curl jest naprawiony, gdy zwykłe curl -I https://example.invalid znów działa, a nie gdy instalator przestaje narzekać.

Powiązane artykuły