web-dev-qa-db-fra.com

Comment obtenir et utiliser des certificats avec curl

  1. Entrer la commande suivante

    curl -k [email protected]:password https://www.example.com 
    

    Renvoie l'erreur suivante

     <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://mail.google.com/mail/">here</A>.
    </BODY></HTML>
    badauth
    
  2. après avoir téléchargé le fichier cacert.crt à partir d’ici

    http://www.cacert.org/index.php?id=3
    

    Puis renommé le fichier cacert.crt en cacert.pem

    Puis essayé:

    curl --cacert /path/to/cacert.pem [email protected]:password https://www.example.com 
    

    Mais obtenez la même erreur.

  3. Puis essayant:

    curl  https://www.example.com 
    

    Je reçois cette erreur

    curl: (60) Problème de certificat SSL: impossible d'obtenir le certificat de l'émetteur local. Plus de détails ici: http://curl.haxx.se/docs/sslcerts.html

    curl effectue la vérification du certificat SSL par défaut, à l'aide d'un "ensemble" de clés publiques (certificats) de l'autorité de certification (CA). Si le fichier d'ensemble par défaut ne vous convient pas, vous pouvez spécifier un autre fichier à l'aide de l'option --cacert.
    Si ce serveur HTTPS utilise un certificat signé par une autorité de certification représentée dans l’offre groupée, la vérification du certificat a probablement échoué en raison d’un problème lié au certificat (il a peut-être expiré, ou le nom peut ne pas correspondre au nom de domaine indiqué dans le message. URL).
    Si vous souhaitez désactiver la vérification du certificat par curl, utilisez l'option -k (ou --insecure).

  4. J'ai donc essayé avec -k

    curl  -k https://www.example.com 
    

    Mais bien sûr avoir l'erreur

    Badauth

Je suppose que le fichier de certificat ne fonctionne pas correctement, mais je ne sais pas où obtenir un fichier de certificat ni quoi en faire une fois que je l’ai.

Je n'ai aucun problème à me connecter à l'aide d'un navigateur bien sûr, mais j'aimerais automatiser le processus à l'aide de la ligne de commande afin de pouvoir le faire avec tasker sur ma tablette Android via WiFi.

14
Joshua Robison

SUCCÈS!!

Je suis passé par un service Web gratuit appelé Dnsomatic (géré par les gens à l'opendns)

C'est aussi simple que de créer un compte et d'ajouter des ouvertures à vos services. Aucune configuration au-delà de cela.

Pour les utilisateurs d'Android, les versions busybox de wget sont très en retard et ne permettent pas d'utiliser des noms d'utilisateur et des mots de passe. Nous devrons donc installer et utiliser cURL.

Le guide pour installer curl peut être trouvé ici

http://forum.xda-developers.com/showthread.php?t=2362386

Une fois que vous avez curl, vous pouvez simplement faire des choses comme mettre à jour votre adresse IP

curl -u opendnsusername:password http://updates.dnsomatic.com/nic/update?hostname=opendnshostname
2
Joshua Robison

Vous pouvez télécharger les certificats racine cacert à partir d’ici: http://www.cacert.org/index.php?id=3

1
Flash