Error Received:sun.security.validator.ValidatorException
gloria5739
Messages postés
43
Date d'inscription
Statut
Membre
Dernière intervention
-
gloria5739 Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
gloria5739 Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai une application web qui fait des requête vers Teamwork.com pour récupérer des données pour les traiter.
L'application était déployé et tournait sur chaque PC avec un serveur Jetty et fonctionnait correctement jusqu'a maintenant. Aujourd'hui, sur 2 de mes collègues, l'application ne renvoie plus les données. J'ai donc réouvert mon projet et ai run sur mon serveur tomcat et l'application ne fonctionne plus non plus chez moi.
J'ai cette erreur : Error Received:sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
J'ai donc recupéré le certificat Teamwork et je l'ai ajouté avec la commande :
keytool -import -alias teamwork -keystore "C:\Users\X194982\Apps\java\JDK\8.0.450\jre\lib\security\cacerts" -file C:\Users\X194982\Apps\java\teamwork.cer
Mais toujours la même erreur.
J'ai une application web qui fait des requête vers Teamwork.com pour récupérer des données pour les traiter.
L'application était déployé et tournait sur chaque PC avec un serveur Jetty et fonctionnait correctement jusqu'a maintenant. Aujourd'hui, sur 2 de mes collègues, l'application ne renvoie plus les données. J'ai donc réouvert mon projet et ai run sur mon serveur tomcat et l'application ne fonctionne plus non plus chez moi.
J'ai cette erreur : Error Received:sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
J'ai donc recupéré le certificat Teamwork et je l'ai ajouté avec la commande :
keytool -import -alias teamwork -keystore "C:\Users\X194982\Apps\java\JDK\8.0.450\jre\lib\security\cacerts" -file C:\Users\X194982\Apps\java\teamwork.cer
Mais toujours la même erreur.
A voir également:
- Error Received:sun.security.validator.ValidatorException
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Error 1962 ✓ - Forum PC fixe
- A javascript error occurred in the main process - Forum Matériel & Système
- Whea error occt - Forum Processeur
2 réponses
Bonjour,
C'est un problème lié aux vérifications du certificat HTTPS probablement parce que celui du site a changé récemment et qu'il est émis depuis une source de certification non reconnue par la JVM.
Pour la plupart des cas, il suffit d'avoir une JVM à jour afin de bénéficier des tout derniers certificats. Sachant que je ne sais pas à quoi correspond ton "JDK\8.0.450" sachant que la dernière version officielle est 8u311 (même si en vrai la toute dernière version est Java 17).
Pour les autres cas, ajouter le certificat à la JVM est la bonne manière de faire, à condition d'avoir le bon certificat et de le maintenir régulièrement à jour.
Sinon, il est possible de court-circuiter la vérification du certificat et autoriser le flux HTTPS sans aucun contrôle. Dans le détail ça va dépendre de la technologie utilisée côté client pour faire l'appel HTTPS mais cela va revenir à créer ce genre de code, tu trouveras pas mal d'exemple sur internet :
C'est un problème lié aux vérifications du certificat HTTPS probablement parce que celui du site a changé récemment et qu'il est émis depuis une source de certification non reconnue par la JVM.
Pour la plupart des cas, il suffit d'avoir une JVM à jour afin de bénéficier des tout derniers certificats. Sachant que je ne sais pas à quoi correspond ton "JDK\8.0.450" sachant que la dernière version officielle est 8u311 (même si en vrai la toute dernière version est Java 17).
Pour les autres cas, ajouter le certificat à la JVM est la bonne manière de faire, à condition d'avoir le bon certificat et de le maintenir régulièrement à jour.
Sinon, il est possible de court-circuiter la vérification du certificat et autoriser le flux HTTPS sans aucun contrôle. Dans le détail ça va dépendre de la technologie utilisée côté client pour faire l'appel HTTPS mais cela va revenir à créer ce genre de code, tu trouveras pas mal d'exemple sur internet :
SSLContext sslcontext = SSLContext.getInstance("TLS"); sslcontext.init(null, new TrustManager[]{new X509TrustManager(){ public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {} public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {} public X509Certificate[] getAcceptedIssuers(){ return new X509Certificate[0]; } }}, new SecureRandom());