Maison >Java >javaDidacticiel >Comment résoudre « sun.security.provider.certpath.SunCertPathBuilderException : impossible de trouver un chemin de certification valide vers la cible demandée » ?

Comment résoudre « sun.security.provider.certpath.SunCertPathBuilderException : impossible de trouver un chemin de certification valide vers la cible demandée » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-21 19:18:12397parcourir

How to Resolve

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

  1. Visitez le serveur HTTPS dans votre navigateur.
  2. Cliquez sur l'icône de verrouillage dans la barre d'adresse et affichez les détails du certificat.
  3. Exportez le certificat sous forme de fichier, généralement avec un .cer ou Extension .crt.

Ajouter le certificat au Truststore de la JVM

Il existe deux façons de procéder :

  • Modifier JAVA_HOME/jre/lib/security/cacerts :

    1. Ouvrez le fichier cacerts situé dans /JAVA_HOME/jre/lib/security/ avec un utilitaire Java keytool.
    2. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn