Mon programme Java utilise l'adresse brute de GitHub pour accéder à un fichier de version afin d'obtenir la dernière version. Cette adresse est au format https://raw.github.com/user/repository/branch/version_fileTéléchargement de fichiers via HTTPS avec certificat SSL non vérifié
Lors des phases d'essai, j'ai eu aucun problème en utilisant ce avec le code suivant:
currentVersion = new Version(plugin.getDescription().getVersion());
URL url = new URL("https://raw.github.com/zonedabone/CommandSigns/master/VERSION");
URLConnection connection = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
newestVersion = new Version(in.readLine());
if (currentVersion.compareTo(newestVersion) < 0)
newAvailable = true;
Cependant, certains utilisateurs se sont plaints de l'erreur suivante:
sun.security.validator.ValidatorException:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
Java se plaint de ne pouvoir valider le certificat SSL. Le certificat de GitHub est vérifié par DigiCert, mais apparemment, certaines versions de Java ne l'identifieront pas. J'ai lu il ya deux façons de surmonter ceci: ajouter le certificat au TrustStore et désactiver la validation tout à fait. Les réponses suggérées sur StackOverflow utilisent soit un TrustStore autorisant tout, ce qui serait une très mauvaise idée étant donné qu'il n'est pas dans les limites d'un 'environnement de test', ou si elles montrent comment ajouter le certificat, elles lien vers une page web cassée.
Quelqu'un peut-il fournir de nouvelles informations?
Cette question a été posée et répond _countless_ fois sur SO et sur le web en général. Veuillez faire une recherche Google sur "certificat auto-signé java" et supprimer cette question. –
duplicata possible de [Comment accepter un certificat auto-signé avec une connexion Java HttpsURLConnection?] (Http://stackoverflow.com/questions/859111/how-do-i-accept-a-self-signed-certificate-with -java-httpsurlconnection) –
@JimGarrison, vrai, malheureusement que google recherche mènera à un certain nombre de réponses qui suggèrent d'utiliser un gestionnaire de confiance qui fait confiance à tout cert ... – Bruno