Pourquoi est-ce que je reçois Handshake_failure avec Java SSL CERT?
-
18-09-2019 - |
Question
J'essaie d'utiliser Hudson (qui utilise SVNKIT) pour accéder à un référentiel Subversion qui nécessite un certificat client pour y accéder. Je peux accéder au même référentiel en utilisant le même certificat client via Eclipse (également à l'aide de SVNKIT).
Lorsque Hudson essaie de consulter le référentiel, il échoue avec:
org.tmatesoft.svn.core.SVNException: svn: Received fatal alert: handshake_failure
Hudson court sous Tomcat, alors j'ai allumé le débogage SSL dans le journal Tomcat (-Djavax.net.debug=ssl
).
À la fin de la poignée de main, je vois:
*** ServerHelloDone
Executor #0 for master : executing eMASS integration #3, SEND SSLv3 ALERT: warning, description = no_certificate
Je ne sais pas si c'est le nœud du problème ou non.
Cela suit une liste des autorités du certificat. Je me suis assuré que l'émetteur racine du certificat du serveur est importé dans mon cacerts
, ainsi que l'émetteur intermédiaire. J'ai toujours le même problème.
Des idées pour quoi regarder?
La solution
Il y avait plusieurs bogues dans le plugin Subversion d'Hudson impliquant le traitement des certificats SSL et de leurs mots de passe. Voici celui que j'ai signalé, qu'ils ont corrigé: http://issues.hudson-ci.org/browse/hudson-5230. Alors maintenant, il devrait enregistrer correctement le certificat que vous téléchargez.
Passez à la dernière version de Hudson (Hudson Ver. 1.342 ou version ultérieure) ainsi que la dernière version du plugin Subversion (1.10, disponible à https://hudson.dev.java.net/servlets/projectDocumentView?DocumentId=147307&showinfo=true). Pour installer ce plugin, téléchargez le fichier subversion.hpi, puis dans Hudson, allez gérer Hudson -> Gérer les plugins -> Advanced et télécharger. Ensuite, vous devez redémarrer Hudson.
Autres conseils
Alexey avait la bonne idée.
Enregistrer:
SEND SSLv3 ALERT: warning, description = no_certificate
Cela a été discuté dans le forum de programmation Java.
Peut-être que votre Eclipse et Hudson commencent avec différents JRES (Client JRE vs JDK JRE?). Chaque JRE a son propre stage de clés. Cela peut être déroutant à configurer.
J'ai eu le même problème sur mon serveur Ubuntu. L'installation de certificats n'a pas aidé. La solution consistait à réprimer le Java par défaut (Java-6-OpenJDK) à Sun Java (Java-6-Sun).
Je ne sais pas exactement, mais cela peut être utile. Peut-être que vous devez ajouter du Cerificate à JVM à l'aide de Keystore