Cómo obtener y usar certificados con curl


14
  1. Ingresando el siguiente comando

    curl -k email@mail.com:password https://www.example.com 
    

    Devuelve el siguiente error

     <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. después de descargar el cacert.crtarchivo desde aquí

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

    Luego renombró el cacert.crtarchivo acacert.pem

    Entonces probé:

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

    Pero obtén el mismo error.

  3. Entonces intentando:

    curl  https://www.example.com 
    

    Me sale este error

    curl: (60) Problema con el certificado SSL: no se puede obtener el certificado de emisor local Más detalles aquí: http://curl.haxx.se/docs/sslcerts.html

    curl realiza la verificación del certificado SSL de forma predeterminada, utilizando un "paquete" de claves públicas de la Autoridad de certificación (CA) (certificados de CA). Si el archivo de paquete predeterminado no es adecuado, puede especificar un archivo alternativo utilizando la opción --cacert.
    Si este servidor HTTPS usa un certificado firmado por una CA representada en el paquete, la verificación del certificado probablemente falló debido a un problema con el certificado (podría expirar o el nombre podría no coincidir con el nombre de dominio en la URL).
    Si desea desactivar la verificación de curl del certificado, use la opción -k (o --insecure)

  4. Así que intenté con -k

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

    Pero por supuesto obtengo el error

    Badauth

Supongo que estoy haciendo algo mal con el archivo de certificado, pero no sé dónde obtener un archivo de certificado o qué hacer con él una vez que lo tengo.

No tengo problemas para iniciar sesión con un navegador, por supuesto, pero me gustaría automatizar el proceso con la línea de comandos para poder hacerlo con Tasker en mi tableta Android a través de WiFi.

Respuestas:


2

¡¡ÉXITO!!

Pasé por un servicio web gratuito llamado dnsomatic (administrado por la gente de opendns)

Es tan simple como registrarse para obtener una cuenta y agregar aperturas a sus servicios. Ninguna configuración más allá de eso.

Para los usuarios de Android, las versiones ocupadas de wget están muy atrás y no tienen opciones para usar nombres de usuario y contraseñas, por lo que tendremos que instalar y usar cURL

La guía para instalar curl se puede encontrar aquí

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

Una vez que tenga curl, simplemente puede hacer cosas como actualizar su ip de opendns

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

Todavía no puedo entender cómo obtener y usar certificados con curl, pero mi objetivo final se ha logrado. Quizás alguien pueda ayudar con el bit de certificado.
Joshua Robison

1

Puede descargar los certificados raíz de cacert desde aquí: http://www.cacert.org/index.php?id=3


1
¿Solo elijo el archivo .crt de formato pem básico y cambio su nombre a .pem?
Joshua Robison

1
Aparentemente no. Descargué el archivo .crt que dice que está en formato pem y lo renombré a curlcacert.pem e hice curl --cacert /path/to/curlcacert.pem site.com pero aún recibo errores de cert.
Joshua Robison

1
¿Qué hago con ellos una vez que los descargo? ¿No puedo usar el mismo certificado que usa mi navegador?
Joshua Robison
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.