Comment obtenir et utiliser des certificats avec curl

  1. Saisie de la commande suivante

    curl -k email@mail.com: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 d'ici

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

    A ensuite renommé le fichier cacert.crt en cacert.pem

    Puis essayé:

    curl --cacert /path/to/cacert.pem email@mail.com:password https://www.example.com 
    

    Mais obtenez la même erreur.

  3. Puis essayer:

    curl  https://www.example.com 
    

    J'obtiens cette erreur

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

    Curl effectue la vérification du certificat SSL par défaut, en utilisant un " ensemble " de clés publiques d'Autorité de certification (CA) (certs CA). Si le fichier bundle par défaut n'est pas adéquat, vous pouvez spécifier un autre fichier en utilisant l'optioncaccacert.
    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 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 (ouinsecinsecure)

  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 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 avec la ligne de commande afin que je puisse le faire avec tasker sur ma tablette Android via WiFi.

demandé sur