Comment obtenir et utiliser des certificats avec curl

14
  1. Saisie de 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 cacert.crtfichier d'ici

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

    Puis renommé le cacert.crtfichier encacert.pem

    Puis essayé:

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

    Mais obtenez la même erreur.

  3. Ensuite, essayez:

    curl  https://www.example.com 
    

    Je reçois cette erreur

    curl: (60) Problème de certificat SSL: impossible d'obtenir le certificat d'é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 (CA) de l'autorité de certification (CA). Si le fichier de regroupement par défaut n'est pas adéquat, 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 le bundle, la vérification du certificat a probablement échoué en raison d'un problème avec le certificat (il peut être expiré ou le nom peut ne pas correspondre au nom de domaine dans l'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, obtenez l'erreur

    Badauth

Je suppose que je fais quelque chose de mal avec le fichier de certificat, mais je ne sais pas où obtenir un fichier de certificat ou quoi en faire une fois que je l'ai.

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

Joshua Robison
la source

Réponses:

2

SUCCÈS!!

Je suis passé par un service Web gratuit appelé dnsomatic (géré par les gens de opendns)

C'est aussi simple que d'ouvrir 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 loin derrière et n'ont pas d'options pour utiliser les noms d'utilisateur et les 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 bouclé, vous pouvez simplement faire des choses comme mettre à jour votre IP d'ouverture

curl -u opendnsusername:password http://updates.dnsomatic.com/nic/update?hostname=opendnshostname
Joshua Robison
la source
Je n'arrive toujours pas à comprendre comment obtenir et utiliser des certificats avec curl mais mon objectif ultime a été atteint. Peut-être que quelqu'un peut aider avec le bit de certificat.
Joshua Robison
1

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


la source
1
Dois-je simplement choisir le fichier .crt au format pem de base et changer son nom en .pem?
Joshua Robison
1
Apparemment non. J'ai téléchargé le fichier .crt qui dit qu'il est au format pem et l'ai renommé en curlcacert.pem et j'ai fait curl --cacert /path/to/curlcacert.pem site.com mais j'obtiens toujours des erreurs cert.
Joshua Robison
1
Que dois-je faire avec eux une fois que je les ai téléchargés? Je ne peux pas simplement utiliser le même certificat que mon navigateur utilise?
Joshua Robison