Switch to OpenJDK

最近正在把公司的 Orac$e JDK 1.8 換成 OpenJDK 1.8
換完之後, 
發現有個系統呼叫某個外部 HTTPS web services 
突然 handshake failure…

心頭一驚… 
然道 Orac$e JDK 偷藏一手?

經過一段時間 troubleshooting, 才發現… 
那個外部系統只支援 TLS 1.0 
而 JDK 8 到了 8u171 就 disable 了 3DES Cipher Suites 
進而影響了 TLS 1.0 的連線
https://bugs.openjdk.java.net/browse/JDK-8213846

這次升級是從 Orac$e JDK 8u144 升到 OpenJDK 8u191  所以撞到了這個問題…

解決方法是, 參考 8u144 修改 /jre/lib/security/java.security 檔案內的 jdk.tls.disabledAlgorithms 的 value
8u191 的 jdk.tls.disabledAlgorithms 的 value 原本是:
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, \
    EC keySize < 224, 3DES_EDE_CBC
修改成:
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, \
    EC keySize < 224
改完測試後總算沒問題