Грешка curl 77: местоположения за проверка на сертификата при инсталация на VPN
Грешка 77 е локален проблем с входните данни за CA, а не лош сървърен сертификат. Намерете файла за доверие, който curl чете, поправете го и прегледайте скрипта, преди да го изпълните.
Поставяте едноредовата команда за инсталиране от урок, натискате 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 отново работи, а не когато инсталаторът спре да се оплаква.