Поставяте едноредовата команда за инсталиране от урок, натискате Enter и получавате curl: (77). Съобщението споменава местоположения за проверка на сертификата, затова инстинктът е да приемете, че сертификатът на VPN доставчика е счупен, и да посегнете към флаг, който пропуска проверката. Това тълкуване е грешно и действието по него превръща локален файлов проблем в решение за сигурност. Нека се върнем отначало.

Стъпка 1: прочетете какво означава числото

Грешка 77 е за локалните входни данни за CA: curl не можа да прочете или зареди сертификатния материал, на който му беше казано да се доверява. Грешка 60 е тази за отсрещната страна, когато веригата на сървъра не се валидира. Те се появяват една до друга в уроците и означават противоположни неща.

Ако изходът ви казва 77, сървърът никога не е бил проблемът. Клиентът не можа да отвори файла, който искаше да използва за проверка, а това е проблем с път, права или пакетиране на вашата машина.

Стъпка 2: прочетете командата, която сте копирали

Копираните команди крият символи. Малката буква -l е --list-only, което се отнася за изброяване на протоколи. Главната буква -L е --location, която следва HTTP пренасочване. Това не са различни изписвания и урок, който пише едното, докато описва другото, изпраща хората по път на пренасочване, който никога не е бил предвиден.

Следването на пренасочване не поправя пътя до хранилището за доверие и не доказва, че крайният хост е издателят, който сте имали предвид. Ако командата идва от форумна публикация, препишете я от собствените инструкции на проекта, вместо да се доверявате на поставеното.

Стъпка 3: открийте кои входни данни за CA използва тази компилация

Започнете с идентифициране на изпълнимия файл, защото отговорът зависи от това как е компилиран:

curl --version

Запишете версията и TLS backend-а. Компилация с родно хранилище за доверие чете системното хранилище през TLS библиотеката, докато компилация, насочена към bundle, чете файл. Явно зададен --cacert, настройка CURL_CA_BUNDLE или shell обвивка могат да отменят и двете, така че инсталацията от пакет може да не докосне файла, който всъщност се проваля.

За файлово хранилище проверете три неща по ред: съществува ли пътят, може ли извикващият акаунт да го чете и съдържа ли CA материала, който очаквате. Bundle с грешни права се проваля по същия начин като липсващ и двете се провалят преди всеки мрежов разговор за сървъра.

Стъпка 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 отново работи, а не когато инсталаторът спре да се оплаква.

Подобни статии