SunCertPathBuilderException: no se puede encontrar la ruta de certificación válida para el error de destino solicitado en Java

Muhammad Zeeshan 12 octubre 2023
  1. ¿Qué es la excepción sun.security.provider.certpath.SunCertPathBuilderException en Java?
  2. Causas de sun.security.provider.certpath.SunCertPathBuilderException: no se pudo encontrar una ruta de certificación válida para el destino solicitado
  3. Solución de sun.security.provider.certpath.SunCertPathBuilderException: no se pudo encontrar una ruta de certificación válida para el destino solicitado
SunCertPathBuilderException: no se puede encontrar la ruta de certificación válida para el error de destino solicitado en Java

La publicación de hoy discutirá las posibles razones de “no se puede encontrar una ruta de certificación válida para el objetivo solicitado” y su solución en Java.

Pero, antes de continuar, debe comprender claramente el cifrado SSL y los certificados, ya que se requiere una comprensión clara de los certificados SSL.

Cifrado SSL y Certificados: una conexión HTTPS no puede funcionar correctamente sin un certificado SSL. Mediante el uso de un conjunto de claves públicas y privadas, corrobora la identidad reclamada del servicio o sitio web.

La clave privada encripta o firma todo lo que entrega el dominio, y las aplicaciones cliente validan la identificación utilizando las claves públicas.

¿Qué es la excepción sun.security.provider.certpath.SunCertPathBuilderException en Java?

La sun.security.provider.certpath.SunCertPathBuilderException es una clase para manejar excepciones en Java que verifica los certificados SSL del servidor al que el programa Java está intentando conectarse. Esta clase recibió el nombre del proveedor que creó los certificados.

El siguiente es el mensaje de error que se muestra al desarrollador cuando se encuentra con este problema.

Caused by : sun.security.provider.certpath.SunCertPathBuilderException
    : unable to find valid certification path to requested target

Se puede lanzar durante cualquier acción que involucre visitar un servicio encriptado usando SSL.

El marco de trabajo de Java verifica la confiabilidad de las API y los sitios web protegidos con SSL antes de que se pueda acceder a ellos. Esto se logra examinando su lista interna de confianza para ver si la autoridad de certificación raíz firmada está allí.

Java arroja este error si no puede descubrir ninguna referencia al servicio. Usar un certificado autofirmado para acceder a un servicio firmado por la firma digital de otra persona siempre fallará.

Causas de sun.security.provider.certpath.SunCertPathBuilderException: no se pudo encontrar una ruta de certificación válida para el destino solicitado

La única forma en que Java podrá conectarse a otro programa a través de SSL es si puede confiar en HTTPS, etc. Hay un almacén de confianza generalmente $JAVA HOME/lib/security/cacerts en el mundo de Java donde almacena sus certificados de confianza.

Esta excepción la desencadena un certificado autofirmado o una cadena de certificados que no existe en el almacén de confianza de Java. Java se niega a conectarse a la aplicación porque no confía en el certificado.

Solución de sun.security.provider.certpath.SunCertPathBuilderException: no se pudo encontrar una ruta de certificación válida para el destino solicitado

  1. Para comenzar, determine si el problema proviene del certificado o de la red. Para verificar esto, abra la URL en Google Chrome o en su navegador preferido y vea si funciona.

    En este caso, una configuración de certificado no válida en el cliente de la aplicación debe ser el origen de la excepción. Puede haber un problema de configuración de red o firewall si el navegador no puede acceder a él.

  2. Obtenga el certificado SSL del servidor después de determinar si hay algún problema con la configuración del certificado. Este podría ser el certificado raíz en las circunstancias más simples, pero en la mayoría de los casos, se requiere una cadena de certificados y una autoridad de certificación intermedia.

    Puede verificar la validez del certificado SSL siguiendo los pasos a continuación.

  • Abra su navegador y haga clic en el candado en la esquina superior izquierda.

    Chrome bloqueo de URL

  • Luego haga clic en La conexión es segura.

    La conexión es segura

  • Por último, obtendrá el estado del sitio si es válido.

    El certificado es válido

  1. Si desea exportar los detalles del certificado, siga los pasos a continuación.
  • Seleccione el símbolo de candado junto a la barra de direcciones URL, luego haga clic en La conexión es segura > El certificado es válido.

    El certificado es válido

    Certificado

  • Haga clic en la sección Detalles y exporte un certificado haciendo clic en el botón Copiar a archivo.

    haga clic en detalles

    Copiar a archivo

    asistente de exportación

  • Exportar binarios codificados DER.

    exportación der

  • Elija el directorio donde desea guardar y asigne un nombre al archivo.

    Navegar

  • Al hacer clic en Finalizar, verá un mensaje La exportación se realizó correctamente.

    La exportación fue exitosa

  1. Inicie una entrada de almacén de confianza con un nuevo certificado. La utilidad de la herramienta clave se puede utilizar para hacer esto.

    Ejecute el siguiente comando para crear un nuevo almacén de confianza.

    keytool - import - file C :\cascerts\firstCA.cert - alias firstCA - Keystore myTrustStore
    
  2. Reinicie su programa para completar el proceso.

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Artículo relacionado - Java SSL

Artículo relacionado - Java Error