"PKIX path building failed" et "unable to find valid certification path to requested target"

a marqué ce sujet comme résolu.

J’ai un logiciel Java Custom D’entreprise, et j’ai un serveur Gravitee qui héberge mes API J’ai au moins 1K d’ordinateur sur lequel est lancé ce logiciel, et des fois j’obtiens cette erreur:

com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error : javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

J’obtiens cette erreur de manière "aléatoire":

  • 99% du temps je n’ai pas d’erreur
  • Quand j’obtiens cette erreur sur un des ordinateurs sur lequel le logiciel est lancée, la seule manière de résoudre le problème -> restart le logiciel (l’erreur durera toute la vie de la JVM)
  • Quand cette erreur apparait sur l’ordinateur 1, l’ordinateur 2 peut très bien faire des appels API à l’URL cible -> pas d’indisponibilité/inaccessibilité du serveur API

Informations supplémentaire:

  • l’API cible n’a pas de VIP (VirtualIP/LoadBalancer), c’est un serveur simple qui a toujours la même IP fixe
  • Le certificat que j’ajoute dans le KeyStore (cacert) est une chaine de certificat autosignée
  • l’URL de l’API cible est sur un domaine local (exemple: myAPI.myDomain.lan) -> donc pas besoin des Autorité de Certification Root (CA Root)
  • Je suis sur que mon certificat est correctement/fonctionnel au KeyStore puisque, si je le retire, j’obtiens -> TODO complete this
  • Je ne parviens pas à trouver une méthode de reproduction du problème
  • Pas de Proxy
  • Pas de headdump ou fuite memoire dans les logs
  • Java version 1.8.0_231_b11

J’ai l’impression d’avoir faire le tour sur la résolution du problème, et je ne parviens pas à le résoudre
J’ai besoin d’une méthodologie pour approcher ce problème

C’est assez étrange car cette erreur signifie le plus souvent que ton certificat n’est pas dans le cacerts ou bien que tu n’as pas importé le bon format (jks vs pkcs). Ce qui m’embête ici c’est que tu dis que si tu redémarres la JVM ça passe, autrement dit, quand il arrive à charger la jvm ça passe… Donc deux questions:

  • es tu sûr que l’url que tu atteins est toujours la même (par exemple, es-tu sûr qu’il n’y aurait pas un algo qui tente une fois d’aller sur myAPI.myDomain.lan et une autre fois sur myDomain.lan ou .local…)
  • es-tu sûr que dans les certificats que tu as importé tu as pas une vieille version du certificat qui ne serait plus valide?
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte