Ви вставляєте однорядкову команду інсталятора з посібника, натискаєте Enter і отримуєте curl: (77). У повідомленні згадуються шляхи перевірки сертифіката, тож інстинкт підказує, що сертифікат провайдера VPN зламано, і хочеться взяти прапорець, який пропускає перевірку. Це прочитання хибне, і дія за ним перетворює локальну проблему файлу на рішення про безпеку. Розберімо з самого початку.

Крок 1: прочитайте, що означає число

Помилка 77 стосується локального вводу CA: curl не зміг прочитати або завантажити матеріал сертифіката, якому йому веліли довіряти. Помилка 60 — це про протилежну сторону, коли ланцюг сервера не проходить перевірку. У посібниках вони стоять поруч і означають протилежне.

Якщо у вашому виводі 77, сервер ніколи не був проблемою. Клієнт не зміг відкрити файл, який збирався використати для перевірки, а це проблема шляху, прав або пакування на вашій машині.

Крок 2: прочитайте команду, яку скопіювали

Скопійовані команди приховують символи. Мала -l — це --list-only, вона стосується переліку протоколів. Велика -L — це --location, вона йде за перенаправленням HTTP. Це не варіанти написання, і посібник, який пише одне, описуючи інше, відправляє людей шляхом перенаправлення, який ніколи не задумувався.

Перехід за перенаправленням не виправляє шлях сховища довіри й не доводить, що кінцевий хост — той видавець, якого ви мали на увазі. Якщо команда взята з повідомлення на форумі, передрукуйте її з власних інструкцій проєкту, а не довіряйте вставці.

Крок 3: з’ясуйте, який ввід CA використовує ця збірка

Почніть з визначення бінарного файлу, бо відповідь залежить від того, як його скомпільовано:

curl --version

Запишіть версію та бекенд TLS. Збірка з власним сховищем довіри читає системне сховище через бібліотеку TLS, а збірка, що вказує на пакет, читає файл. Явний --cacert, налаштування CURL_CA_BUNDLE або обгортка shell можуть перекрити і те, і те, тому встановлення з пакета може навіть не торкнутися файлу, який насправді дає збій.

Для файлового сховища перевірте три речі по черзі: чи існує шлях, чи може його прочитати обліковий запис, що викликає команду, і чи містить він очікуваний матеріал CA. Пакет із неправильними правами дає збій так само, як відсутній, і обидва зазнають невдачі до будь-якої мережевої розмови про сервер.

Крок 4: виправте ввід, а не перевірку

Відновіть підтримувану конфігурацію довіри через того, кому вона належить: пакет дистрибутива, ваше керування конфігурацією або задокументовану змінну середовища. Мета — читабельний і правильний ввід CA для цього бінарного файлу.

Не перемикайте URL на HTTP, не додавайте --insecure і не довіряйте сертифікату, скопійованому з нез’ясованого завантаження. Кожна з цих змін змінює те, що ви готові прийняти, замість того щоб виправити те, що curl не зміг прочитати, і зміна зазвичай переживає інцидент.

Довідником щодо чисел є каталог помилок curl, і він достатньо короткий, щоб один раз уважно його прочитати.

Крок 5: завантажте, подивіться, потім виконайте

Отримайте інсталятор у файл, а не передавайте його в shell у тій самій команді. Ця єдина зміна відокремлює передачу, яку можна переглянути, від коду, що виконується з вашими правами.

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

Перевірте, що відповідь — це очікуваний скрипт, а не HTML-сторінка помилки, повідомлення про перенаправлення або порожній файл. Якщо видавець надає контрольну суму або підпис, перевірте її через їхній задокументований процес випуску, а не через значення, цитоване в тій самій темі форуму.

Пам’ятайте, що HTTPS зробив, а чого не зробив. Він автентифікував транспорт до хоста, з яким ви зв’язалися; він не переглядав вміст скрипта і не каже, чи заслуговує видавець на довіру.

Крок 6: тримайте кроки встановлення окремо

Завантаження файлу, встановлення клієнта, налаштування тунелю та перевірка маршрутів — це чотири операції з чотирма різними режимами збою. Виконання їх по одній означає, що помилка далі в послідовності має одну очевидну причину замість чотирьох кандидатів.

Якщо встановлення вдалося і тунель піднявся, перевірте маршрути та один реальний пункт призначення, перш ніж закрити заявку. Помилка curl виправлена, коли проста curl -I https://example.invalid знову працює, а не коли інсталятор перестає скаржитися.

Схожі статті