¿Como solucionar el error “curl: (60) SSL certificate problem: unable to get local issuer certificate “?

Estamos ante un error poco común, si has instalado curl desde repositorio con yum o con apt probablemente nunca encontraras un error de este tipo.

Este error suele aparecer en distros antiguas y esta relacionada con el cambio de versión de curl, si te ha salido este error es porque seguramente hayas actualizado curl compilándolo y no hayas incluido el certificado de confianza.

Tambien puede aparecer al intentar hacer un wget con las nuevas versiones de openssl:

OpenSSL: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
 Unable to establish SSL connection

Estos errores son debidos a que en versiones antiguas de curl o openssl no se establecía relación de confianza y no se necesitaba ningún certificado, pero las versiones actuales si lo requieren y al no encontrarlo el sistema devuelve este error.

La solución es bastante sencilla, basta con descargarse el certificado en la página oficial de  curl https://curl.haxx.se/ca/cacert.pem y guardarlo en la ubicación de los certificados de la versión de Linux en la que estés trabajando.

"/etc/ssl/certs/ca-certificates.crt",                // Debian/Ubuntu/Gentoo etc.
"/etc/pki/tls/certs/ca-bundle.crt",                  // Fedora/RHEL 6
"/etc/ssl/ca-bundle.pem",                            // OpenSUSE
"/etc/pki/tls/cacert.pem",                           // OpenELEC
"/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem", // CentOS/RHEL 7

En el caso de que necesites utilizar curl con php bastaría con añadirlo al fichero de configuración php.ini

curl.cainfo = "/etc/ssl/certs/cacert.pem"
openssl.cafile  = "/etc/ssl/certs/cacert.pem"

Con estos pasos el error queda resuelto y podrás utilizar curl perfectamente.