«curl_exec error 60 Peer’s Certificate issuer is not recognized» en un proceso cron [RESUELTO]

Si te has encontrado el error «curl_exec error 60 Peer’s Certificate issuer is not recognized«, no te preocupes, aquí te cuento cómo resolverlo en 5 minutos.

Últimamente llevo mantenimiento de varias webs de distintos clientes. En una de ellas hicimos una migración hace poco, y me asignaron el mantenimiento desde entonces.  la web en líneas generales va muy bien, está muy bien hecha por la persona que la diseñó, pero por el cambio de servidor hay que ajustarle a veces algunas cosas. Esta fue una de ellas.

¿Qué provoca este error?

Como sabes, «curl» es un comando de GNU/Linux para trabajar con URLs. Este error se produce cuando la dirección que tratas de pasar a través de este comando es con https y el certificado SSL está firmado por un CA.

Al parecer, desde hace un tiempo para acá, cuando el certificado de seguridad está firmado por un tercero, da problemas. Esto se debe a que curl no está preparado para verificar la autenticidad de la firma, ya que trabaja con un «bundle». Si el CA no está en su breve listado… es como si fuera «falso».

¿Problema? Que si considera que es falso, por seguridad, no lo ejecuta, y nos da este simpático error. Ahora imagina que esto pasa, como a nosotros, en una web que está en producción. Esa web en producción cuenta con una aplicación de pago, con clientes reales, y depende de este comando dentro de los procesos «cron» para funcionar. Te puedes imaginar el apuro.

¿Cómo se resuelve?

Realmente lo difícil fue llegar hasta este error, lo cual supuso unas cuantas horas. Una vez encontrado, la solución en si no fue muy complicada.

Hay dos formas de hacerlo. Puedes pelearte con el bundle de curl para que reconozca el CA y todo funcione bien en varias horas de trabajo más, si lo logras, o puedes hacer lo que te comento a continuación y que no te llevará más de 5 minutos, funcionando igual de bien.

Mi solución en 5 minutos

Simplemente, allí donde tengas curl (en nuestro caso, como te comento, era en los procesos de cron), simplemente tienes que añadirle un parámetro, así:

curl -k https://OliverdelaRosa.com  (como ejemplo de URL con https)

Si, como lo lees, simplemente añades «-k» y todo funciona a la perfección. ¿Por qué? Porque este parámetro lo que hace es saltarse la comprobación de seguridad del certificado. Básicamente es como si curl dijese «bueno, si tú lo dices será verdad» y tira para delante con la URL en cuestión. Y ya está, eso es todo lo que tienes que hacer para resolverlo. ¿Esperabas algo más complicado?


Espero que te haya servido este artículo ¿Has podido hacer funcionar curl después de esto? Házmelo saber en los comentarios, también puedes preguntarme cualquier duda relacionada con esto. ¡Y compártelo en tus redes sociales para ayudar a más personas! Hasta pronto.

3 comentarios en “«curl_exec error 60 Peer’s Certificate issuer is not recognized» en un proceso cron [RESUELTO]”

  1. Pingback: Resolver “curl_exec error 60 Peer’s Certificate issuer is not recognized” - De Robots Online

  2. Pingback: Cómo probar si funcionan los "cron jobs " fácil y rápido | Oliver de la Rosa

  3. Pingback: Cómo probar si funcionan los “cron jobs ” fácil y rápido - De Robots Online

Los comentarios están cerrados.