Maison > Java > javaDidacticiel > Pourquoi mon programme Java ne parvient-il pas à télécharger les fichiers HTTPS avec « impossible de trouver un chemin de certification valide vers la cible demandée » ?

Pourquoi mon programme Java ne parvient-il pas à télécharger les fichiers HTTPS avec « impossible de trouver un chemin de certification valide vers la cible demandée » ?

DDD
Libérer: 2024-12-20 18:12:16
original
353 Les gens l'ont consulté

Why Does My Java Program Fail to Download HTTPS Files with

Impossible de trouver le chemin de certification valide vers la cible demandée

Lors du téléchargement d'un fichier à partir d'un serveur HTTPS via Java, vous pouvez rencontrer l'erreur suivante :

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Copier après la connexion

Comprendre l'erreur

Cette erreur indique un problème avec l'authentification client-serveur. Les serveurs HTTPS utilisent des certificats pour établir une connexion sécurisée. Le client (programme Java) doit faire confiance au certificat du serveur pour procéder au téléchargement.

Cause possible : le serveur dispose d'un certificat auto-signé

Les certificats auto-signés sont non délivré par une autorité de confiance. Le magasin de confiance par défaut de Java ne contient pas ces certificats, ce qui entraîne l'échec de l'authentification.

Solution

Pour ignorer l'authentification client-serveur, vous pouvez ajouter le certificat du serveur au fichier Java magasin de confiance. Voici comment procéder :

1. Obtenez le certificat :

  • Naviguez vers le site Web à l'aide d'un navigateur.
  • Cliquez sur l'icône de verrouillage dans la barre d'adresse.
  • Sélectionnez « Certificat » et exportez le certificat sous forme de fichier CER ou CRT.

2. Ajoutez le certificat au Trust Store :

Il existe deux façons de procéder :

a. À l'aide de keytool :

  • Ouvrez une invite de commande.
  • Accédez à JAVA_HOME/jre/lib/security.
  • Exécutez la commande suivante :
keytool -import -trustcacerts -alias myalias -file certificate.cer
Copier après la connexion

b. Utilisation du paramètre -D :

  • Exécutez votre application Java avec le paramètre suivant :
-Djavax.net.ssl.trustStore=mytruststore.jks
Copier après la connexion

3. Remplacez certificate.cer et mytruststore.jks par les noms de fichiers réels.

Après avoir ajouté le certificat au magasin de confiance, votre programme Java devrait pouvoir télécharger le fichier depuis le serveur HTTPS sans l'erreur d'authentification. .

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal