实际上不算一个精确的标题
准确来说,使用OpenJDK才会有这个问题
springboot支持所有的TLS协议,不需要特别指定,如果老老实实的用ORACLE JDK没有问题,但是如果偷懒直接用yum或者apt-get安装openJdk就会有问题了,因为
The OpenJDK Crypto Roadmap states that TLSv1 and TLSv1.1 will be disabled by default in OpenJDK versions released after April 20, 2021. This change also applies to Oracle, and all the JVMs that are derived from OpenJDK. 哪些OpenJDK版本会受到影响?
Java LTS versions 11.0.11, 1.8.0_291 and up have TLSv1 and TLSv1.1 disabled by default. www.petefreitag.com/item/916.cf…
所以很容易就安装到了不支持TLSv1 TLSv1.1的版本,但是我们的客户很多还是使用古老的IE,没启用TLSv1.2,有的阉割版的系统甚至启用了TLSv1.2,但是就是不生效。。👿
卸载openJDK,安装oracleJDK
查看OpenJDK
rpm -qa|grep jdk
卸载
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.312.b07-2.el8_5.x86_64
安装oracleJDK
rpm -ivh jdk-8u202-linux-x64.rpm
编辑配置文件
vim /etc/profile
末尾增加环境变量配置
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
生效:source /etc/profile
查看ORACLEJDK的配置文件:
vi /usr/java/default/jre/lib/security/java.security
查找jdk.tls.disabledAlgorithms
可以看到 java version "1.8.0_202"并没有禁用TLSv1 和 TLSv1.1,但是之后的版本我没有一一验证,貌似都没禁用:java.com/en/configur…
# Example:
# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, \
EC keySize < 224, 3DES_EDE_CBC, anon, NULL