Adiós error curl: (60) SSL certificate problem: self signed certificate

¿Quién no ha usado curl alguna vez? Yo mismo esta semana para lanzar consultas a un servidor web HTTPS que he tenido que configurar para un proyecto, el mismo que expliqué en este post.

Celebración

Simplemente fui a llamar a mi servidor HTTPS, que por cierto tiene un certificado digital autofirmado, en la línea de comandos, así:

curl https://nombre-de-mi-servicio.foo

Pero la navaja suiza de código abierto me lanzó esta advertencia:

curl: (60) SSL certificate problem: self signed certificate
More details here: http://curl.haxx.se/docs/sslcerts.html

Lo que sucede es que curl verifica por defecto los certificados digitales, y simplemente no reconoce el mío. Tienes más información sobre este mensaje en la documentación oficial.

Total, que al principio se me ocurrió desactivar la verificación SSL en cada una de mis consultas usando --insecure, de este modo:

curl https://nombre-de-mi-servicio.foo --insecure

Pero luego me di cuenta de que, además de no ser lo más óptimo, también era una completa pérdida de tiempo.

Me dije, ¿no habrá otra forma de hacer esto sin tener que añadir el molesto --insecure todo el rato? Así que al final terminé creando un archivo .curlrc en mi ~.

Solo hay que añadir una línea, apuntando a tu certificado digital para que curl lo reconozca:

cacert=/etc/ssl/nombre-de-mi-servicio.foo/nombre-de-mi-servicio.foo.crt

Y esto es todo. Si el tip de hoy te ha servido para que tú también consigas arreglar este error, entonces compártelo con tus amig@s. ¡Así ayudarás a alguna persona!