NOTE: This article is 3 years or older so its information may no longer be relevant. Read on at your own discretion! Comments for this article have automatically been locked, refer to the FAQ
for more details.
Back in 2014 I've written an article
about addressing the SSLHandshakeException
. Technology has moved on since then so that approach no longer works and shouldn't be used. If you're getting this exception being thrown when trying to call a web service hosted in WebLogic 12.2
(running on Java 8
) use this approach instead.
This is what SoapUI
reports, it's the same error as back in 2014 essentially, however the root cause is quite different.
As per Java 8 SDK Cryptography Architecture documentation
Starting with JDK 8u31, the SSLv3 protocol (Secure Socket Layer) has been deactivated and is not available by default.
The above is due to the POODLE
vulnerability. This setting is confirmed by looking at $JAVA_HOME/jre/lib/security/java.security
Great, so SSLv3
Now according to WebLogic 12.2 documentation
Not setting the weblogic.security.SSL.protocolVersion system property enables the SSLv3Hello, SSLv3, and TLSv1 protocols. In addition, for JSSE, all versions starting with "TLS" are also enabled.
However since the JDK
specifically disables SSLv3
, the above options are not available. The solution is to use TLSv1.1
or better TLSv1.2
when connecting. This is done by adding the line below to the vmoptions.txt
file in SoapUI
I've tried and confirmed that the TLSv1
setting also doesn't work (presumably since it is also affected by POODLE
). However, TLSv1.1
does work, as does the TLSv1.2
A quick disclaimer...
Although I put in a great effort into researching all the topics I cover, mistakes can happen.
If you spot something out of place, please do let me know.
All content and opinions expressed on this Blog are my own and do not represent the opinions of my employer (Oracle).
Use of any information contained in this blog post/article is subject to this disclaimer
Other posts you may like...