Maison >Java >javaDidacticiel >Comment résoudre « sun.security.provider.certpath.SunCertPathBuilderException : impossible de trouver un chemin de certification valide vers la cible demandée » ?
Résolution de l'exception « sun.security.provider.certpath.SunCertPathBuilderException : impossible de trouver un chemin de certification valide vers la cible demandée »
Le code fourni tente de télécharger un fichier à partir d'un serveur HTTPS mais rencontre une erreur liée au certificat. Cette erreur se produit souvent lorsque le serveur présente un certificat auto-signé qui n'est pas approuvé par la JVM du client.
Pour résoudre ce problème, vous pouvez demander au client de faire confiance au certificat du serveur. Voici comment :
Récupérer le certificat du serveur à l'aide d'un navigateur
Ajouter le certificat au Truststore de la JVM
Il existe deux façons de procéder :
Modifier JAVA_HOME/jre/lib/security/cacerts :
Importez le certificat exporté à l'aide de la commande -importcert. Par exemple :
keytool -keystore cacerts -importcert -file my_server_cert.cer
Utilisez le paramètre -Djavax.net.ssl.trustStore :
Vous pouvez spécifier un emplacement de truststore différent en définissant le système Java property :
java -Djavax.net.ssl.trustStore=/path/to/my_truststore
Remarque : Assurez-vous d'utiliser la bonne version JDK/JRE, car elle influence l'emplacement du fichier cacerts.
En faisant confiance au certificat, vous autorisez le client à communiquer avec le serveur malgré l'absence d'autorité de certification de confiance. Cependant, il est important de noter que cela peut introduire des risques de sécurité si le certificat du serveur n'est pas fiable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!