Bienvenue

Jalios Community

Tout ce que vous souhaitez savoir sur l'écosystème Jalios

[Outil] Récupération de certificat SSL et inscription dans le magasin des certificats

Mis à jour par Benoît Dissert · le 17/01/2024 à 10:03 · Version 1.4
Déposé par · le 23/01/2014 à 16:52
Archive ZIP (10,54 Ko)

Problématique

Vous rencontrez une erreur ressemblant à ceci :

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Il s'agit d'un classique : le certificat SSL utilisé dans la communication avec le serveur n'est pas accepté par votre Java local.

Il vous faut donc récupérer ce certificat, et l'intégrer dans le magasin des certificats de Java.

Récupérer les certificats côté client, et les placer dans le magasin des certificats

Le petit utilitaire Java InstallCert (en ligne de commande), présent dans l'archive téléchargeable ici, vous permet réaliser tout cela simplement.

Exemple d'utilisation :

% java InstallCert ecc.fedora.redhat.com
Loading KeyStore
 /usr/jdk/instances/jdk1.5.0/jre/lib/security/cacerts...
Opening connection to ecc.fedora.redhat.com:443...
Starting SSL handshake...

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
[...]

Server sent 2 certificate(s):

 1 Subject CN=ecc.fedora.redhat.com, O=example.com, C=US
   Issuer  CN=Certificate Shack, O=example.com, C=US
   sha1    2e 7f 76 9b 52 91 09 2e 5d 8f 6b 61 39 2d 5e 06 e4 d8 e9 c7
   md5     dd d1 a8 03 d7 6c 4b 11 a7 3d 74 28 89 d0 67 54

 2 Subject CN=Certificate Shack, O=example.com, C=US
   Issuer  CN=Certificate Shack, O=example.com, C=US
   sha1    fb 58 a7 03 c4 4e 3b 0e e3 2c 40 2f 87 64 13 4d df e1 a1 a6
   md5     72 a0 95 43 7e 41 88 18 ae 2f 6d 98 01 2c 89 68

Enter certificate to add to trusted keystore or 'q' to quit: [1]

Quittez ou Validez.

[...]

Added certificate to keystore 'jssecacerts' using alias
'ecc.fedora.redhat.com-1'

L’entrepôt utilisé (ou créé) est le fichier 'jssecacerts' du répertoire courant.

Pour que ce fichier soit pris en compte par Java, vous devez :

  • Soit déplacer ce fichier dans $JAVA_HOME/jre/lib/security .
  • Soit configurer Java pour lui en spécifier l'emplacement (cf. documentation citée ci-après)

Pensez à bien redémarrer votre plateforme.

Voir la documentation de java pour plus de détails :

Source

Initialement publié par Andreas Sterbenz sur son blog Oracle dans un billet intitulé No more 'unable to find valid certification path to requested target' (09/10/2006)

Le billet n'étant plus accessible, et le lien de téléchargement historique n'étant plus valide, nous vous en proposons une copie, compilée dans cette archive zip.

Liens vers d'autres sites faisant référence à ce script :