Más de veinte años ofreciendo servicios…
Dominios, hosting y resellers
VPS, dedicados y housing
Administración
Este problema puede darse al actualizar o instalar plugins e incluso temas que no completan el proceso.
Actualización fallida: Descarga fallida cURL error 60: SSL certificate problem: xxxxxxxxxx
A veces, cuando realizamos una llamada curl a servicios de terceros, obtenemos un error curl: (60) Certificado SSL: no se puede obtener el certificado del emisor local, o el certificado ha caducado.
Este error se produce porque curl verifica y realiza una solicitud de conexión segura mediante un certificado autofirmado. Cuando no encuentra el certificado válido, o lo identifica como caducado, y muestra un error.
En muchas ocasiones es debido a que el certificado interno de WordPress, ubicado en wp-includes/certificates/ca-bundles.crt incluye un certificado que ha caducado.
Hay varias maneras, y debes comprobar cuál es la que te funciona a ti en concreto en cada instalación, hasta dar con la que se adapte a tu problema específico.
Un modo sencillo, aunque no carente de peligro, es desactivar la verificación del certificado, añadiendo estas líneas a tu archivo functions.php o como prefieras hacerlo:
add_filter('https_ssl_verify', '__return_false');Una vez guardados los cambios deberías poder actualizar o instalar, lo que fuera que no te dejaba antes.
Otra opción, menos radical, sería omitir esta comprobación. En este caso el código a añadir sería el siguiente:
add_action( 'http_api_curl', function( $handle ) {
curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, false );
});Otro método, que puede servirte temporalmente, hasta la próxima actualización de WordPress, es sustituir el contenido del certificado de WordPress por uno actualizado. Puedes hacerlo de 2 maneras:
Manualmente:
1.1 – Descarga este archivo: https://curl.se/ca/cacert.pem.
1.2 – Actualiza el contenido del archivo /wp-includes/certificates/ca-bundle.crt con el contenido del archivo descargado.
¡Ya está! Ahora ya no deberías ver el error de certificado caducado.
Automáticamente (una vez):
2.1 – Añade este código al final del archivo functions.php del tema activo:
if( isset( $_GET['update-wp-ca-bundle'] ) ){
$crt_file = ABSPATH . WPINC . '/certificates/ca-bundle.crt';
$new_crt_url = 'http://curl.haxx.se/ca/cacert.pem';
if( is_writable( $crt_file ) ){
$new_str = file_get_contents( $new_crt_url );
if( $new_str && strpos( $new_str, 'Bundle of CA Root Certificates' ) ){
$up = file_put_contents( $crt_file, $new_str );
echo $up ? 'OK: ca-bundle.crt updated' : 'ERROR: can`t put data to ca-bundle.crt';
}
else {
echo 'ERROR: can\'t download curl.haxx.se/ca/cacert.pem';
}
}
else {
echo 'ERROR: ca-bundle.crt not writable';
}
exit;
}2.2 – En la barra de direcciones del navegador teclea esta dirección y pulsa la tecla INTRO (sustituyendo el dominio de ejemplo por el tuyo): https://EJEMPLO.COM/?update-wp-ca-bundle
¡Ya está! Ahora borra el código anterior, esto solo debes ejecutarlo una única vez.
Igual que antes, ahora todo debería funcionar.
100% SEO, rendimiento, accesibilidad, y prácticas.
Discos NVME y GeoLocalización
Servidores de última generación
Andaina Sistemas Informáticos S.L. © 2000 - 2026 || B19875848 || IVA NO INCLUIDO