Error Received:sun.security.validator.ValidatorException

Fermé
gloria5739 Messages postés 49 Date d'inscription lundi 21 septembre 2020 Statut Membre Dernière intervention 21 janvier 2022 - 14 janv. 2022 à 11:12
gloria5739 Messages postés 49 Date d'inscription lundi 21 septembre 2020 Statut Membre Dernière intervention 21 janvier 2022 - 21 janv. 2022 à 10:39
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.
A voir également:

2 réponses

KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
14 janv. 2022 à 13:59
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 :

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());
0
gloria5739 Messages postés 49 Date d'inscription lundi 21 septembre 2020 Statut Membre Dernière intervention 21 janvier 2022 1
21 janv. 2022 à 10:39
Bonjour,

Merci pour ta réponse.

Tu penses qu'en changeant de version de JDK ça peut marcher ?
0