Que faire si vous obtenez une exception javax.net.ssl.SSLHandshakeException: connexion de l'hôte distant fermée pendant l'établissement de liaison dans IBM JDK

Contexte

Lorsque vous essayez d'accéder à un site HTTPS externe avec une application qui utilise IBM JDK, telle que WebSphere Liberty, le message suivant peut apparaître en fonction du site.

R javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
R  at com.ibm.jsse2.av.a(av.java:599)
R  at com.ibm.jsse2.av.i(av.java:869)
R  at com.ibm.jsse2.av.a(av.java:19)
R  at com.ibm.jsse2.av.startHandshake(av.java:672)
R  at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:396)
R  at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:355)
R  at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:14

D'autre part, le JDK Oracle peut fonctionner.

Cause

IBM JDK négocie la communication avec TLSv1.0 par défaut. D'un autre côté, si l'autre partie est définie pour ne pas autoriser autre chose que TLSv1.2 (principalement ces jours-ci), la négociation échouera et le message d'erreur ci-dessus se produira.

Correspondance

Définissez les trois propriétés système suivantes. Ensuite, il sera négocié avec TLSv1.2. Cette option a été confirmée dans JDK 1.8.

jvm.options etc.


-Dcom.ibm.jsse2.overrideDefaultTLS=true
-Djdk.tls.client.protocols=TLSv1.2
-Dhttps.protocols=TLSv1.2

Recommended Posts

Que faire si vous obtenez une exception javax.net.ssl.SSLHandshakeException: connexion de l'hôte distant fermée pendant l'établissement de liaison dans IBM JDK
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire si vous obtenez une erreur gcc dans Docker
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Que faire si vous obtenez une erreur de nombre d'arguments erroné dans binding.pry
Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium
Que faire si vous obtenez une erreur «302» dans le code de test du contrôleur dans Rails
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Que faire si vous oubliez votre mot de passe root sur CentOS7
[Maven] Que faire si on vous demande d’incorporer dans la guerre un fichier jar qui n’est pas dans le référentiel distant
Que faire si vous sélectionnez un JRE dans Eclipse et obtenez "Le JRE sélectionné ne prend pas en charge le niveau de conformité actuel 11"
Que faire si vous obtenez une erreur de bibliothèque partagée JNI lorsque vous essayez de créer avec Eclipse
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Que faire quand Pour installer la version manquante, exécutez `gem install bundler: 2.1.4`
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
Que faire si vous créez accidentellement un modèle
Que faire si vous obtenez Impossible d'enregistrer la table principale dans un fichier après l'importation d'un projet dans Eclipse
Que faire si vous obtenez une erreur NoClassDefFoundError lorsque vous essayez d'exécuter eclipse sur Java 9
[Solution] Que faire si vous obtenez une erreur Docker "ERREUR: Impossible de se connecter au démon Docker sous unix: ///var/run/docker.sock. Le démon docker est-il en cours d'exécution?"
Que faire si vous recevez l'avertissement «Le validateur d'unicité n'appliquera plus la comparaison sensible à la casse dans Rails 6.1.» Dans Rails 6.0
Que faire si vous ne trouvez pas le JDK que vous avez mis dans SDKMAN après la migration de bash vers zsh sous macOS
Que faire si la commande rails devient inutilisable
[Rails] Que faire si vous effectuez accidentellement une installation groupée dans un environnement de production de votre environnement local
[Tutoriel Rails Chapitre 2] Que faire lorsque vous faites une erreur dans le nom de la colonne
[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
Comment faire un pot avec l'ancien Hadoop (hadoop-core-0.20.2-cdh3u6) dans Gradle: (Que faire si vous obtenez Impossible de développer ZIP ..)
Que faire si la page Rails n'est pas affichée dans le didacticiel Rails 1.3.2
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
Que faire en cas de problème pendant Content Assist
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
Que faire si vous obtenez une [Une requête HTTP a pris trop de temps à se terminer.] Erreur dans Docker.
Que faire lorsque le préfixe c n'est pas lié dans JSP
Que faire si vous entrez gem'bcrypt 'dans votre Gemfile et obtenez une erreur avec l'installation du bundle
Que faire si vous ne pouvez pas installer le plug-in à partir d'Eclipse Marketplace
Que faire si l'image publiée par refile disparaît après avoir défini la page d'erreur 404 dans Rails
Que faire si vous n'aimez pas le code généré par swagger-codegen-cli
Que faire si vous obtenez l'erreur Trop long sans sortie (dépassé 10m0s) dans CircleCI
[Rails] Que faire si vous obtenez une erreur indiquant "Impossible de trouver un moteur d'exécution JavaScript." Lors de l'exécution de la commande rails dans Catalina
Que faire si vous avez activé Utiliser le moteur basé sur WSL2 dans Docker Desktop avec une installation WSL2 insuffisante
Comment traduire le message d'erreur en japonais (que faire si vous ne pouvez pas vous connecter pour une raison quelconque)
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
Que faire si vous ne pouvez pas activer la boîte de sélection créée par bootstrap-select
Que faire si les modifications ne sont pas reflétées dans le fichier manifeste JAR