2017-04-25 2 views
3

Sur mon Ubuntu (16.04) dev. env. Je peux créer un httpclient par défaut et envoyer une demande à un point de terminaison https (par exemple Slack), cependant, sur le prod. env. (DO goutte avec Ubuntu 14.04) Je reçois cette erreur:Pourquoi httpclient a un comportement différent (lié à SSL) sur la droplet DO?

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

modifier: Toujours essayer de comprendre cela ... Je suppose que les gouttelettes DO avec Java (Oracle) installés ne sont pas les mêmes certificats que Ubuntu images de bureau. J'ai ajouté le certificat Slack (obtenu avec cet outil InstallCert mentionné ailleurs sur le SO) au cacerts (et couru update-ca-certificates) en vain.

+0

Cela indique généralement un proxy d'entreprise "transparent". –

+0

Pour la résolution - pourriez-vous activer le débogage de la prise de contact? -Djavax.net.debug = ssl: poignée de main alors vous verrez ce qui est digne de confiance et ce qui est vraiment reçu et utilisé – gusto2

+0

Toujours aux prises avec cela, j'ai mis à jour mon OP pour refléter mon état actuel. – Rhangaun

Répondre

3

Il est possible que votre racine de géotrust ne contienne pas de cacerts Java.

Vous pouvez voir quels certificats sont approuvés à l'aide de keytool. Par exemple, pour une machine virtuelle Java oracle:

keytool -list -keystore /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts 

Recherchez l'entrée avec la signature à droite-à-dire:

debian:geotrust_global_ca.pem, 18/05/2015, trustedCertEntry, 
Certificate fingerprint (SHA1): DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12 

Si elle ne fait confiance que vous pouvez l'installer, le télécharger à partir de:
https://www.geotrust.com/resources/root_certificates/certificates/GeoTrust_Global_CA.pem

Installez-le avec

keytool -import -trustcacerts -file GeoTrust_Global_CA.pem -alias GeoTrust_Global_CA -keystore $JAVA_HOME/jre/lib/security/cacerts 
+0

Résultat: 'Le certificat existe déjà dans le fichier de clés sous alias ' – Rhangaun

+0

Je suppose que quelque chose dans votre environnement écrase l'emplacement 'javax.net.ssl.trustStore'. – Magnus

+0

Une idée de ce que pourrait faire ça? – Rhangaun