Avisos
Vaciar todo

[Resuelto] PHP Fatal error: Uncaught Exception: cURL error 60: SSL certificate problem: unable to get local issuer certificate in FILE.php:84  

 
Daniel
 Daniel
Nuevo usuario

Hola a todos, ¿cómo estáis?

Soy Dani y soy nuevo en el foro, encantado. Resulta que tengo un problemita al que no le encuentro solución de momento y necesito vuestra ayuda 😉

Gracias ya de antemano!

Os comento de que va el tema. Resulta que tengo una web de un cliente en WordPress en la cual tengo desactivadas las actualizaciones automáticas para prevenir posibles incompatibilidades en cuanto a versiones de WordPress, plugins, etc. Se trata de una web de una agencia inmobiliaria la cual se conecta mediante un plugin desarrollado por una empresa externa a un webservice (buscocasa.com, para ser exactos). Resulta que esta web ya hacia uso de la plataforma buscocasa.com para tener su base de datos de propiedades, etc y tuvimos que conectar nuestro WordPress mediante el plugin que os comento y de esta forma cada vez que se actualiza o añade información nueva a la base de datos de buscocasa.com, se sincroniza con la web y se mantiene en tiempo real.

La web no ha fallado nunca hasta ahora pero no muestre ningún fallo al usarla como visitante ni como administrador en la parte interna del WordPress pero al tratar de utilizar el plugin que nos conecta con el webservice (se hace uso de él cuando se quiere pulsar en "importar contenido de buscocasa" y se sincroniza) no muestra bien el contenido del mismo dentro del propio panel de administración de WordPress y parecí­a un fallo de conexión externa al propio plugin. Investigando un poco hemos visto que Webempresa analiza y encuentra dicho error mostrando lo siguiente:

PHP Fatal error: Uncaught Exception: cURL error 60: SSL certificate problem: unable to get local issuer certificate in /home/fedeles/public_html/divinehousemallorca.com/wp-content/plugins/sbinmo-importer/includes/class-sbinmo-api.php:84

La cuestión es que es extraño que de repente no funcione ya que nosotros no hemos cambiado ni actualizado nada en la web y hemos hablado con el soporte de dicho plugin y dicen no haber modificado nada tampoco al respecto, por lo que me queda hablar con vosotros a ver si al ver el error sabéis de donde puede venir ese fallo SSL y que opciones podemos tener. He abierto un ticket y me han recomendado que actualice la versión PHP a la 7.4 y aunque lo he hecho dudaba que fuera ese el problema y por eso he acabado aquí.

Os explico un poco como parece que funciona el plugin (he revisado el archivo del plugin donde se produce el error):

Aunque la web no muestra ningún fallo, parece que recorre unas llamadas a un función que conecta con la API de buscocasa.com y en algún momento falla, ya que no termina el proceso y no llega a mostrar el botón del plugin de "Importar". Parece que el botón es lo último que se carga después de dichas funciones pero al provocar el fallo no se llega a ver.

Adjunto la parte del código donde se produce el fallo para que podáis ver todas las veces que se hacen llamadas y a que URLs.

El fallo se produce al llamar a la siguiente función dentro del plugin:

 

                private function file_get_contents( $url ) {

                               $request = new WP_Http;

                               $result  = $request->request( $url, [ 'timeout' => 15 ] );

                               if ( is_wp_error( $result ) ) {

                                               $json = $result->get_error_message();

                                               throw newException( $json );

                               } else {

                                               $json = $result['body'];

                               }

 

                               return $json;

                                // return file_get_contents( $url );

                }

 

Dicha función se ejecuta muchas veces dentro de este archivo llamando a distintas URLs del WebService, dejo un ejemplo de url:

 

                public function getMunicipios( $provincia ) {

 

                               $json = $this->file_get_contents( " http://buscocasa.com/webservice/municipios.json.asp?guid={$this->apiKey}&nCodProv={$provincia}&swp={$this->swp} " );

 

                               return json_decode( $json, true )[0];

                }

Desde el soporte del webservice me dicen que no creen que sea fallo suyo y me pasan algunas urls de llamadas a su webservice con los parámetros sin variables para que pueda probarlo en navegador y de hecho funcionan, pero sigo pensando que el fallo se encuentra en el propio servidor del webservice ya que aunque el plugin tuviera algún fallo es la misma versión desde que se instaló en la web y no se ha modificado y el punto en el que se provoca el fallo es en las llamadas al webservice de buscocasa.com.

URL ejemplo uso webservice con parámetros a mano en navegador: https://buscocasa.com/webservice/provincias.json.asp?guid=25c9d3c0dc3fa6b2b41e0270c3080da8

Al comprobar que la última vez que se utilizó dicho plugin de manera correcta fue a primeros de Diciembre (mi cliente me avisa a principios de Febrero ya que intenta usarlo y no le aparece el botón de importar), para descartar posibilidades, he restaurado una copia completa de la web y base de datos de día 30 de Noviembre y vuelto a probar tratando de demostrar que no parece ser problema de nuestra web o del propio WordPress. Después de esto, vuelvo a actualizar la versión PHP a 7.4 según recomendación de Webempresa y vuelvo a probar sin éxito.

Una vez que les comento esto de nuevo a buscocasa.com intento explicar un poco los posibles motivos por los que creo que puede estar sucediendo el fallo en su servidor diciendo lo siguiente:

Posibles fuentes del problema en el API/servidor de buscocasa:
  • CORS en Cross Origin bloqueado (aclaración:  https://lo-victoria.com/introduction-to-cross-origin-resource-sharing-cors )
  • Certificado caducado o algún servicio relacionado desactualizado
  • Versiones de PHP actualizadas y conflicto con otros servicios que hay que actualizar en paralelo
  • Algún tema relacionado con networking y firewall de seguridad
  • Configuración de una Whitelist
  • Software AntiDDOS bloquea webs externas
  • Posibles limitaciones con certificados de webs externas

Y esta ha sido su respuesta:

"Aunque como te comenté, no creemos que nuestra configuración pueda tener que ver con el problema, hemos analizado cada uno de los puntos sugeridos.
Te detallo a continuación.

  • CORS en Cross Origin bloqueado (aclaración:  https://lo-victoria.com/introduction-to-cross-origin-resource-sharing-cors )
    Hemos revisado este punto y agregado la configuración CORS al archivo web.config de nuestro servidor y concretamente al dominio que es utilizado por nuestro webservice (www.buscocasa.com).
  • Certificado caducado o algún servicio relacionado desactualizado
    Hemos consultado la configuración de los certificados desde el panel Plesk del servidor dedicado que hospeda la base de datos y el webservice al que accede el plugin y como puedes ver en la siguiente pantalla, todo está en orden y no hay nada que podamos variar.
    Hemos verificado también que existe la redirección http -> https, por lo tanto es lo mismo acceder por una u otra vía.
  • Versiones de PHP actualizadas y conflicto con otros servicios que hay que actualizar en paralelo
    Nosotros no trabajamos con PHP, sino con ASP.NET y por lo tanto no hay nada en este sentido que podamos revisar.
  • Algún tema relacionado con networking y firewall de seguridad
    Nuestro servidor es un dedicado con Windows 2019 Server. El único bloqueo que realiza para evitar ataques de fuerza bruta es el del puerto SQL, el cual no tiene efecto en el webservice, ya que las llamadas son por el puerto https (URLs).
    Igualmente podríamos probar de añadir la IP de tu servidor a la lista de IPs con acceso a SQL, pero no creemos que tenga efecto alguno.
  • Configuración de una Whitelist
    La única lista blanca, o IPs de acceso a servicios configurada en nuestro servidor, es la comentada en el punto anterior. No hay restricción alguna a nivel de Firewall a IPs externas via https.
  • Software AntiDDOS bloquea webs externas
    No hay ningún software instalado de este tipo en el servidor
  • Posibles limitaciones con certificados de webs externas
    No existe limitación alguna, ya que como he comentado es un servidor Windows dedicado y no tiene ninguna restricción especial"

He probado de nuevo después de lo que me han comentado y sigue sin funcionar, ¿alguna idea? ¿pensáis como yo y que el fallo tiene que estar en el webservice o se me está escapando algo?

Gracias y perdonad por el testamento.

Un saludo

Contenido solo visible a usuarios registrados

Respondido : 15/02/2024 2:39 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

El mensaje de error "curl: (60) Problema con el certificado SSL: no se puede obtener el certificado del emisor local" normalmente indica un problema con el certificado del servidor al que intenta conectarse o con la cadena de certificados que conduce a una autoridad certificadora confiable.

También verifica si el certificado del servidor está firmado por una autoridad certificadora (CA) confiable. Si el certificado del servidor no está firmado por una CA confiable, o si curl no puede encontrar la CA en su lista, obtendrás el mensaje de error.

Puedes revisar esto:

-> https://www.howtouselinux.com/post/curl-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate

 

Todo me huele a que el problema está en el servidor desde donde se obtienen los datos.

 

Un Saludo

Respondido : 15/02/2024 3:16 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Daniel
 Daniel
Nuevo usuario

@pepesoler Hola!

 

Antes de nada, gracias por tu respuesta tan rápida.

Informe de todo lo que me dijiste al soporte del servidor donde hacemos la llamada al webservice y han contestado lo siguiente:

"Buenos días Daniel,

Revisando el mensaje de tu proveedor de hosting y el enlace incluido, indican que hay dos posibles causas del error, relacionadas ambas con el certificado de seguridad SSL de la URL a la que accede el webservice.

 

  1. El sitio web que hospeda el webservice no está firmado por una autoridad certificadora (CA) confiable, o un certificado intermedio no está correctamente instalado en el servidor.
  2. EL CURL del sitio cliente (en este caso tu hosting), no puede encontrar la CA (autoridad certificadora) en su lista.

 

Para comprobar el primer punto, hemos utilizado la plataforma más reconocida en evaluación de sitios web, que es https://www.ssllabs.com/ssltest , la cual nos ha dado un informe completo y positivo de nuestro sitio.


Te incluyo informe a continuación:

El análisis del certificado SSL de www.buscocasa.com muestra que el certificado es válido y está configurado correctamente. Aquí hay algunos puntos clave que respaldan esta afirmación:

 

Validez del certificado: El certificado SSL actual es válido desde el 1 de enero de 2024 hasta el 31 de marzo de 2024. Esto indica que el certificado está dentro de su período de validez y no ha expirado.

 

Cadena de certificados: La cadena de certificados parece estar completa y correctamente configurada. El certificado del sitio web (Certificado #1) está firmado por la Autoridad Certificadora (CA) "R3", y el certificado de la CA está firmado por "ISRG Root X1". Ambos certificados están presentes y no hay problemas con la cadena de certificados.

 

Algoritmos de cifrado: El servidor admite una variedad de algoritmos de cifrado seguros, incluidos los algoritmos de Intercambio de Claves Diffie-Hellman (DHE) y ECDHE, que proporcionan Perfect Forward Secrecy (PFS).

 

Compatibilidad del protocolo: El servidor es compatible con TLS 1.0, TLS 1.1 y TLS 1.2. Sin embargo, TLS 1.0 y TLS 1.1 son protocolos antiguos y se consideran menos seguros. Se recomienda desactivar TLS 1.0 y TLS 1.1 para mejorar la seguridad.

 

En resumen, según el análisis del certificado SSL, no parece haber ningún problema evidente con el certificado de www.buscocasa.com que pueda causar incidente alguno.

Por ello, según la información que nos enviaste, creemos que el problema podría estar en la lista del CURL de tu sitio web, el cual tal vez no incluya la CA autoridad certificadora ( "R3"  en nuestro caso),  utilizada en el certificado actual de www.buscocasa.com."

 

En este caso, debo comentárselo mediante ticket a Webempresa directamente o que opinas tu?

 

Gracias una vez más!

 

Un saludo

Respondido : 16/02/2024 12:00 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

 debo comentárselo mediante ticket a Webempresa directamente o que opinas tu?

Si comentalo, pero ya te digo que tenemos clientes que se conectan por webservice y no esta dando problemas de conectividad ni de certificado, es más el error " no se puede obtener el certificado del emisor local " indica que el problema viene del servidor al que se intenta conectar.

 

Un saludo

Respondido : 16/02/2024 12:12 pm

Daniel
 Daniel
Nuevo usuario

@pepesoler vale 😉

 

En realidad esa es mi sensación, que los del webservice tiran balones fuera, pero por si acaso lo he comentado en el ticket de Webempresa para que si pueden hacer algo que me digan y vuelvo a contestar con eso a los de soporte del webservice.

 

Te digo cualquier avance.

 

Gracias!

Respondido : 16/02/2024 12:25 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

Ok,  dejo el hilo abierto.

 

Un Saludo

Respondido : 16/02/2024 12:31 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Daniel
 Daniel
Nuevo usuario

@pepesoler, Hola de nuevo,

Parece que finalmente hemos solucionado el problema. Cómo ya sabíamos, el fallo está en el servidor externo al que conectamos y con las modificaciones que hicimos junto con unos cambios en la verificación del SSL desde WordPress para el tema de las imágenes, hemos conseguido que funcione.

Mientras el servidor al que conectamos no solucione el problema, es la manera de poder seguir trabajando.

Gracias por vuestra ayuda.

Un saludo

Respondido : 08/03/2024 10:34 am
Pepe me gusta
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Daniel.

Genial !!! Me alegra que lo solucionaras, Gracias por informarnos y aportar la solución 😊  

Cualquier consulta que tengas no dudes en comunicarlo.

 

Un saludo

Respondido : 08/03/2024 10:53 am

Cursos Gratuitos WordPress