Incollate il comando di installazione in una riga da un tutorial, premete Invio e ottenete curl: (77). Il messaggio menziona i percorsi di verifica del certificato, quindi l’istinto è supporre che il certificato del fornitore VPN sia rotto e cercare un’opzione che salti la verifica. Questa lettura è sbagliata, e agire di conseguenza trasforma un problema di file locale in una decisione di sicurezza. Ripartiamo dall’inizio.

Passaggio 1: leggete che cosa significa il numero

L’errore 77 riguarda l’input CA locale: curl non è riuscito a leggere o caricare il materiale del certificato di cui gli era stato detto di fidarsi. L’errore 60 è quello relativo alla controparte, quando la catena del server non si convalida. Nei tutorial compaiono uno accanto all’altro e significano cose opposte.

Se il vostro output dice 77, il server non è mai stato il problema. Il client non è riuscito ad aprire il file che voleva usare per il controllo, e questo è un problema di percorso, permessi o impacchettamento sulla vostra macchina.

Passaggio 2: leggete il comando che avete copiato

I comandi copiati nascondono caratteri. Il -l minuscolo è --list-only, che si applica all’elenco dei protocolli. Il -L maiuscolo è --location, che segue un reindirizzamento HTTP. Non sono grafie alternative, e un tutorial che scrive l’una mentre descrive l’altra manda le persone su un percorso di reindirizzamento che non era mai stato previsto.

Seguire un reindirizzamento non ripara il percorso di un archivio di attendibilità e non dimostra che l’host finale sia l’editore che intendevate. Se il comando proviene da un post di un forum, riscrivetelo dalle istruzioni del progetto stesso invece di fidarvi dell’incollato.

Passaggio 3: scoprite quale input CA usa quella build

Iniziate identificando il binario, perché la risposta dipende da come è stato compilato:

curl --version

Annotate la versione e il backend TLS. Una build che usa un archivio di attendibilità nativo legge l’archivio di sistema tramite la libreria TLS, mentre una build puntata a un bundle legge un file. Un --cacert esplicito, un’impostazione CURL_CA_BUNDLE o un wrapper shell possono sovrascrivere entrambi, quindi un’installazione da pacchetto potrebbe non toccare il file che in realtà fallisce.

Per un archivio basato su file, controllate tre cose in ordine: il percorso esiste, l’account che invoca il comando può leggerlo e contiene il materiale CA che vi aspettate. Un bundle con permessi sbagliati fallisce esattamente come uno mancante, ed entrambi falliscono prima che avvenga qualsiasi conversazione di rete sul server.

Passaggio 4: riparate l’input, non la verifica

Ripristinate la configurazione di attendibilità supportata tramite chi la possiede: il pacchetto della distribuzione, la vostra gestione della configurazione o la variabile d’ambiente documentata. L’obiettivo è un input CA leggibile e corretto per quel binario.

Non passate l’URL a HTTP, non aggiungete --insecure e non fidatevi di un certificato copiato da un download inspiegato. Ognuno di questi cambiamenti modifica ciò che siete disposti ad accettare invece di riparare ciò che curl non riusciva a leggere, e il cambiamento di solito sopravvive all’incidente.

Il riferimento per i numeri è il catalogo degli errori di curl, ed è abbastanza breve da leggerlo una volta con attenzione.

Passaggio 5: scaricate, guardate, poi eseguite

Scaricate l’installer in un file invece di convogliarlo in una shell nello stesso comando. Quell’unico cambiamento separa un trasferimento che potete ispezionare dal codice che viene eseguito con i vostri privilegi.

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

Controllate che la risposta sia lo script atteso e non una pagina di errore HTML, un avviso di reindirizzamento o un file vuoto. Se l’editore fornisce un checksum o una firma, verificatela tramite il suo processo di rilascio documentato e non un valore citato nello stesso thread del forum.

Ricordate che cosa ha fatto HTTPS e che cosa no. Ha autenticato il trasporto verso l’host che avete contattato; non ha esaminato il contenuto dello script e non vi dice se l’editore è affidabile.

Passaggio 6: tenete separati i passaggi di installazione

Scaricare il file, installare il client, configurare il tunnel e convalidare le rotte sono quattro operazioni con quattro modalità di errore diverse. Farle una alla volta significa che un errore più avanti nella sequenza ha una causa ovvia invece di quattro candidate.

Se l’installazione riesce e il tunnel si alza, verificate le rotte e una destinazione reale prima di chiudere il ticket. L’errore di curl è risolto quando un curl -I https://example.invalid semplice funziona di nuovo, non quando l’installer smette di lamentarsi.

Articoli correlati