cURL error 60: SSL certificate problem: unable to get local issuer certificate

Escenario

Todo empezó con el aviso de un proveedor. Un plugin de WordPress fallaba con el siguiente error:
cURL error 60: SSL certificate problem: unable to get local issuer certificate

Problema

Una búsqueda rápida con Google me lleva a la conclusión de que hay que editar el fichero de configuración php.ini. A fin de averiguar donde se encuentra el fichero en cuestión me sirvo del comando php -i | grep "Loaded Configuration File", que devuelve la siguiente información:
Loaded Configuration File => /etc/php/7.4/cli/php.ini
A continuación descargo http://curl.haxx.se/ca/cacert.pem y lo guardo en /etc/ssl/certs/. Edito los ficheros /etc/php/7.4/cli/php.ini y /etc/php/7.4/fpm/php.ini y añado/completo las siguientes directrices: Reinicio nginx y el problema persiste.

Solución

Me huelo que el problema va a estar relacionado con la cadena de confianza de certificado SSL del sitio web. Un openssl s_client -connect acme.com:443 me lo confirma:
CONNECTED(00000003)
depth=0 CN = *.acme.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = *.acme.com
verify error:num=21:unable to verify the first certificate
verify return:1
El servidor web —en este caso nginx— no está devolviendo la cadena entera del certificado. La solución pasa por editar el certificado referenciado en la clave ssl_certificate del fichero de configuración del sitio /etc/nginx/sites-enabled/acme.com y añadir los certificados que completan la cadena. Para este sitio usamos Sectigo (antes conocido como Comodo). Los certificados los entrega en dos ficheros:
  • STAR_acme_com.crt
  • STAR_acme_com.ca-bundle
Pues bien, hay que encadenar el ca-bundle al final del certificado antes de utilizarlo.

Publicaciones Similares

  • Argument list too long!

    Escenario Después de más de 11 años de fiel servicio ha llegado el momento de cambiar de NAS. Hasta ahora había estado usando una máquina con FreeBSD y la interfaz web Nas4Free. Para el nuevo servidor, he optado por instalar Ubuntu y gestionar la administración web con webmin. El soporte de Ubuntu para el sistema…

  • Actualización de Mautic 4

    Este artículo va dedicado a aquellos administradores web entre cuyas labores se encuentre el mantenimiento de una instalación Mautic. Por eso no voy a explicar qué es Mautic: si no lo conoces, este artículo carece de interés. Vamos a partir de la base que el usuario UNIX, propietario de la instalación, es mautic y que…

  • |

    Cómo ampliar el espacio en disco en 1and1

    Escenario Hemos contratado un servidor dedicado en 1and1 (ubuntu 14.04) y al acceder por ssh constatamos que no disponemos de todo el espacio en disco disponible: $ df -hFilesystem Size Used Avail Use% Mounted onudev 3.9G 4.0K 3.9G 1% /devtmpfs 798M 592K 797M 1% /run/dev/md1 4.0G 990M 3.0G 25% /none 4.0K 0 4.0K 0% /sys/fs/cgroupnone 5.0M 0 5.0M 0% /run/locknone 3.9G 0 3.9G 0% /run/shmnone 100M 0 100M 0% /run/user/dev/mapper/vg00-usr 4.8G 1.3G 3.3G 28% /usr/dev/mapper/vg00-var 4.8G 812M 3.8G 18% /var/dev/mapper/vg00-home 4.8G 10M 4.6G 1% /home Objetivo Aumentar el espacio disponible para dar cabida a nuestros recursos. Solución Nota: sólo aplicable a sistemas linux Primer paso Comprobamos el espacio en disco real: ~$ sudo fdisk -lDisk /dev/sda: 240.1 GB, 240057409536 bytes255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisk identifier: 0x24e3fc12   Device Boot      Start         End      Blocks   Id  System/dev/sda1            2048     8390655     4194304   fd  Linux raid autodetect/dev/sda2         8390656    12584959     2097152   82  Linux swap / Solaris/dev/sda3        12584960   468862127   228138584   fd  Linux raid autodetect Segundo…

  • |

    Actualización de Apache Guacamole server 1.0 → 1.2

    Escenario En el trabajo usamos Apache Guacamole para conectarnos a nuestros escritorios de la oficina desde casa. Apache Guacamole proporciona una puerta de entrada HTML5 para conectar con servicios de acceso remoto, como pueden ser VNC o RDP. Consta de dos : el servidor y el cliente que no tienen por qué correr en la…

  • Actualización de MySQL: de la versión 5.7 a 8.0

    Atención no probar esta solución en sistemas en producción. Es solo una demostración de prueba. Escenario Por la razón que fuera queremos actualizar la versión de MySQL de 5.7 a 8.0 en ubuntu 16.04. En mi caso quería probar si con la actualización mejoraba cierto problemillas que estaba teniendo con la codificación de caracteres. Problema…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *