web-dev-qa-db-fra.com

Que faire si Ubuntu 14.04 LTS curl ne prend pas en charge un certificat d’autorité de certification, même s’il est valide

Sur Ubuntu 14.04, j'essaie de faire ceci curl https://api.the-newshub.com/api/1/topics/trending/top. Cela ne fonctionne pas, mais cela fonctionne lorsque vous visitez Firefox.

J'ai mis à jour les certificats: Sudo apt-get install --reinstall ca-certificates et update-ca-certificates -f. Toujours rien.

À quelle fréquence les certificats de CA natifs d'Ubuntu sont-ils mis à jour? À quelle fréquence les nouveaux certificats apparaissent-ils?

Qu'est-ce qu'un travail autour de si vous avez vraiment besoin d'accéder à une telle URL? Mais vous ne contrôlez pas le domaine? Mais la vérification SSL est obligatoire.

3
CMCDragonkai

Curling cela fonctionne pour moi, mais voici 2 choses que vous pouvez faire (prises de man curl ):

  1. Dans Firefox, sélectionnez Options , puis Avancé , puis le Onglet Cryptage , Afficher les certificats . Cela ouvre le gestionnaire de certificats, où vous pouvez exporter . Assurez-vous de sélectionner PEM pour le "Type de fichier".

    Supposons que vous mettiez votre certificat dans _~/cert.pem_, vous utiliseriez alors:

    _curl -E ~/cert.pem https://api.the-newshub.com/api/1/topics/trending/top
    _
  2. De nombreux anciens serveurs SSL ont des problèmes avec SSLv3 ou TLS, que les nouvelles versions d'OpenSSL, etc. utilisent, il est donc parfois utile de spécifier quelle version de SSL doit être utilisée par curl. Utilisez -3, -2 ou -1 pour spécifier la version SSL exacte à utiliser (pour SSLv3, SSLv2 ou TLSv1 respectivement):

    _curl -2 https://api.the-newshub.com/api/1/topics/trending/top
    _

    Sinon, curl tentera d’abord d’utiliser v3 puis v2.

    NOTE: votre site semble utiliser SSLv3 en fonction de son certificat, cette seconde idée est donc probablement inutile.

  3. ( source , environ 10.04) J'ai eu le même problème et après avoir fouillé un peu, vous pouvez télécharger un paquet de certificats CA-certs prêts à être curl sur Ubuntu directement à partir du site de dev de curl.

    _cd /etc/ssl/certs
    Sudo wget http://curl.haxx.se/ca/cacert.pem
    _

    Maintenant, curl utilise le paquet le plus récent et vous êtes prêt à partir.

2
MrVaykadji