Come correggere il lancio di arricciatura "errore nell'impostazione dei percorsi di verifica dei certificati"

4

Sono uno sviluppatore web e ho un MacBook4,1 con OS X 10.5.8. Cose importanti come GitHub, homebrew, ruby e python non funzionano correttamente, perché l'arricciatura non funziona. Sembra che i certificati SSL non siano aggiornati.

Ogni volta ricevo questo errore:

curl: (77) error setting certificate verify locations:
  CAfile: /usr/share/curl/curl-ca-bundle.crt
  CApath: none

Che cosa posso fare per risolvere il problema?

    
posta sinaneker 03.07.2013 - 21:50
fonte

2 risposte

1

Questo errore non dice esplicitamente che i certificati sono obsoleti, vero? Mi sembra che si stia lamentando del fatto che i certificati non sono dove dovrebbero essere (o potenzialmente non possono essere letti).

Trovato su google:

link

Per riassumere il poster si suggerisce di usare il flag -k con curl per sopprimere questo errore (questo è ovviamente meno sicuro) o assicurarsi che qualunque processo stia chiamando Curl abbia eseguito l'accesso a tutte le directory sul percorso dei certificati.

    
risposta data 03.07.2013 - 22:47
fonte
7

Il problema sorge perché OS X non mantiene i suoi certificati CA nel file system; vivono nel portachiavi "System Roots". Puoi vederli con l'app Keychain Access (disponibile nella cartella Applicazioni / Utility).

Per quegli strumenti che non sanno come parlare al portachiavi (come il ricciolo), puoi esportare questi certificati in una cartella di tua scelta, diciamo /etc/ssl/certs per essere coerente con la maggior parte delle distribuzioni di Linux. Puoi trascinarli e rilasciarli da Keychain Access in una finestra del Finder, oppure selezionarli e scegliere "Esporta elementi ..." dal menu file. Con il trascinamento della selezione sembra sempre utilizzare il formato binario .cer , mentre la maggior parte degli strumenti CLI richiede il PEM con codifica Base64 (comunemente utilizzando l'estensione di file .crt ). È possibile esportare in formato pem dall'accesso con portachiavi, ma sembra esportare un solo certificato alla volta anche se sono stati selezionati più certificati. Per ovviare a questo, ho scritto uno script bash per convertire in batch .cer in file .crt in formato PEM:

#!/bin/bash
#Convert all .cer files in this folder into PEM format .crt files
shopt -s nullglob
for f in *.cer
do
        openssl x509 -inform der -in "${f}" -outform pem -out "${f%.*}.crt"
        rm "$f"
done
chmod 444 *crt

Per usarlo, creare una cartella, inserire questo script (l'ho chiamato cerconv.sh ), trascinare e rilasciare tutti i certificati CA radice in esso, aprire un terminale in tale cartella ed eseguire solo bash cerconv.sh .

Per evitare cose nefande che sostituiscono i tuoi certificati CA, ho aggiunto una riga a chmod tutti in sola lettura.

Questo potrebbe non essere necessario - Non ho certamente problemi con git (hub), homebrew, arricciatura ecc. senza doverlo fare e ho fatto per anni - ma almeno ora sai come ottenere i certificati.

Questo approccio è migliore dell'utilizzo di -k in arricciatura perché non stai compromettendo la tua sicurezza.

Aggiornamento : ho appena scoperto l'utilità security su OS X. Ecco un comando che lo usa per esportare tutti i certificati dal portachiavi del sistema in un singolo file .pem che dovrebbe essere utilizzabile con arricciare:

security export -p -t certs -k 'security list-keychains -d system|cut -d '"' -f 2' -o certs/certs.pem
    
risposta data 20.03.2014 - 00:24
fonte

Leggi altre domande sui tag