La jvm IBM et TLS

Dans un élan de modernisation, les principaux navigateurs ont décidé d’en finir avec des protocoles devenus obsolètes et dangereux d’un point de vue sécurité. Ainsi, firefox, chrome, edge ou safari désactivent TLS 1.0 et TLS 1.1 ces jours-ci après en avoir averti il y a plus d’un an. Il en est de même pour le monde de java et la jvm d’Oracle utilise par défaut TLS 1.2 en tant que client depuis Java 8. Sans doute pour des raisons de compatibilité, celle d’IBM a fait un choix plus conservateur et utilise toujours TLS 1.0 et TLS 1.1 et ça peut poser des problèmes quand les serveurs ne supportent plus que TLS 1.2, on aura alors le message suivant :

javax.net.ssl.SSLException: Received fatal alert: protocol_version
        at com.ibm.jsse2.k.a(k.java:32)
        at com.ibm.jsse2.k.a(k.java:37)
        at com.ibm.jsse2.av.b(av.java:549)
        at com.ibm.jsse2.av.a(av.java:715)
        at com.ibm.jsse2.av.i(av.java:574)
        at com.ibm.jsse2.av.a(av.java:280)
        at com.ibm.jsse2.av.startHandshake(av.java:431)

Il faut dans ce cas passer le paramètre com.ibm.jsse2.overrideDefaultTLS=true pour qu’elle se calque sur le comportement de celle d’Oracle et utilise TLS 1.2 comme c’est décrit ici :

https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/matchsslcontext_tls.html#matchsslcontext_tls