WORDPRESS: cURL error 60: certificado SSL

4 minutos de lectura

avatar de usuario
nathan30

Actualmente estoy construyendo una instalación de WordPress bajo un servidor Debian. Instalo PHP7, curl y Apache2

Mientras intento instalar una nueva extensión, tengo este mensaje de error:

cURL error 60: SSL certificate problem: self signed certificate in certificate chain

Intento modificar el php.ini con esto, después de leer una publicación que trata un problema similar:

curl.cainfo = /etc/php7.0/cacert.pem

Pero sigo enfrentando el problema incluso con reiniciar apache.

Algunas ideas ?

Gracias por adelantado

  • comprobar la ruta del archivo /etc/php7.0/cacert.pem donde se encuentra

    – Pankaj Makwana

    19 de junio de 2017 a las 14:04

  • Posible duplicado del error 60 de Curl, problema del certificado SSL: certificado autofirmado en la cadena de certificados

    – mods fabio

    19 de junio de 2017 a las 14:08

  • Compruebo la ruta del archivo y está bien :/

    – Nathan30

    19 de junio de 2017 a las 14:10

establezca ‘sslverify’ en falso para corregir el error cURL 60: certificado SSL en la solicitud wp_remote_get de WordPress.

wp_remote_get($url, array('sslverify' => FALSE));

  • ¿Dónde agregar esto?

    – Manik Arora

    24 de diciembre de 2020 a las 7:10

  • ¡Muy buena solución! me soluciono el problema! ¡Brillante!

    – David

    22 de abril de 2021 a las 7:07

Deshabilite la verificación SSL dentro de su sitio de prueba.

Puede hacer esto agregando esta línea en el archivo

Apariencia > Editor de temas > functions.php o

/wp-content/themes/TU_TEMA/funciones.php:

add_filter('https_ssl_verify', '__return_false');

Solo agregue esto en un sitio de prueba, nunca en un sitio en vivo.

WordPress usa su propio paquete de CA, ubicado en WP/wp-includes/certificates.

El paquete de CA que se envió con WordPress hasta hace poco estaba desactualizado, como se explica en este número: https://core.trac.wordpress.org/ticket/45807.

Ajuste sslverify a false no se recomienda, y en su lugar puede descargar una versión actualizada del paquete, https://github.com/WordPress/WordPress/tree/master/wp-includes/certificates y reemplazarlo en la carpeta de wordpress.

  • El paquete de CA del enlace de Github que indicó no funcionó para mí (reinició apache local y todo). Solo la configuración ‘sslverify’ => FALSE hizo…

    – Styledev

    24 oct 2020 a las 21:25

Basado en mi experiencia reciente, creo que el mensaje “certificado autofirmado en la cadena de certificados” le dice el problema exactamente, que es que cualquier sitio SSL al que intente acceder tiene un certificado en la cadena que no está en el grupo al que hace referencia cacert.pem.

Esto tiene sentido porque el error informa que es un autofirmado certificado… es decir, nunca se incluiría en el archivo cacert.pem descargado.

Mi solución fue conseguir un Base64 archivo codificado que contiene la cadena de certificados del sitio al que intento acceder.

    How to: Use a browser to access the site you are trying to access, click the 
    certificate part of the address (usually to the left of the address box with 
    a lock icon) and the click on whatever your interface supports to see the 
    list of certificates in the chain.  Manually export those certificates to a 
    text file.

Luego agregue este archivo de texto con un editor de texto a la lista de certificados (cacert.pem) que PHP está usando para las acciones CURL.


Usted menciona WordPress.. WordPress v4.9.6 tiene un paquete de certificados a los que hace referencia específicamente cuando está actualizando o instalando complementos en ./Instancia de WordPress\wp-incluye\certificados. Mi solución temporal fue agregar el archivo de texto anterior (que contiene la cadena de certificados autofirmados locales) al ca-paquete.crt archivo que encontrará en esa ubicación.

Una advertencia: cuando actualice WordPress, sobrescribirá el ca-paquete.crt archivo, por lo que tendrá que volver a agregarlos, a menos que alguien tenga una mejor solución …?

avatar de usuario
Transbordador W

En caso de que alguien tenga el mismo problema con su instalación de WordPress en la máquina local, agregue http_request_args el filtro hizo el truco para mí

<?php
/**
 * Plugin Name: Local Dev CaFile
 * Plugin URI: https://stackoverflow.com/q/44632619/881743
 * Description: Another solution for `SSL certificate problem: self signed certificate in certificate chain apache` error for your local development
 * Version: 1.0
 * Author: John Doe
 * Author URI: https://stackoverflow.com/
 * License: WTFPL
 */

add_filter( 'http_request_args', function ( $args ) {
    if ( getenv('WP_ENV') !== 'development' ) {
        return $args;
    } 

    $args['sslcertificates'] = ini_get( 'curl.cainfo' ) ?? $args['sslcertificates'];

    return $args;
}, 0, 1 );

y guardarlo en path/to/wp-content/plugins/dev-plugin.php y active el complemento desde wp-admin, u opcionalmente podría ponerlo en su WPMU_PLUGIN_DIR.

Espero que ayude Saludos

avatar de usuario
Ganesh

Descargar este archivo http://curl.haxx.se/ca/cacert.pem

Utilice la ubicación de su archivo en
openssl.cafile=c:/cacert.pem

Referencia – https://github.com/auth0/auth0-PHP#I-am-getting-curl-error-60-ssl-certificate-problem-self-signed-certificate-in-certificate-chain-on-windows

avatar de usuario
vosykapavel

Actualizar desde wp-cli 2.4 => 2.5 me ayudó. (con la instalación de este https://github.com/wp-cli/perfil-comando )

¿Ha sido útil esta solución?