JDK1.8.0_151的无限制强度加密策略文件变动


JDK1.8.0_151无需去官网下载 local_policy.jar US_export_policy.jar这个jar包,只需要修改Java\jdk1.8.0_151\jre\lib\security这目录下的java.security文件配置即可。

随着越来越多的第三方工具只支持 JDK8,最近公司也计划从 JDK7 升级到 JDK8,在线下环境升级过程中,发现某些项目报以下异常:

java.security.InvalidKeyException: Illegal key size 

这是因为某些国家的进口管制限制,JDK默认的加解密有一定的限制。
比如默认不允许 256 位密钥的 AES 加解密,解决方法就下载官方JCE无限制强度加密策略文件,覆盖即可。

但是发现公司选用的 1.8.0_151 版本的 $JAVA_HOME/jre/lib/security/ 目录下面多了一个 policy 文件夹,里面还有两个文件夹

├── limited
│   ├── local_policy.jar
│   └── US_export_policy.jar
└── unlimited
    ├── local_policy.jar
    └── US_export_policy.jar

于是搜了一下,发现了这篇文章:Java Unlimited Strength Crypto Policy for Java 9 or 1.8.0_151,以下内容为该文章的翻译。

从Java 1.8.0_151和1.8.0_152开始,为JVM启用 无限制强度管辖策略 有了一种新的更简单的方法。如果不启用此功能,则不能使用AES-256。

请在 jre/lib/security 文件夹中查找文件 java.security
例如,对于Java 1.8.0_152,文件结构如下所示:

/jdk1.8.0_152
 |- /jre
      |- /lib
            |- /security
                  |- java.security

现在用文本编辑器打开java.security,并找到定义java安全性属性crypto.policy的行,它可以有两个值limitedunlimited - 默认值是limited

默认情况下,您应该能找到一条注释掉的行:

#crypto.policy=unlimited

您可以通过取消注释该行来启用无限制,删除

crypto.policy=unlimited

现在重新启动指向JVM的Java应用程序即可。

Read More

JDK1.8.0_151之前的版本 参考 :http://czj4451.iteye.com/blog/1986483

 

解决方案:

jdk1.8  unlimited更改:

java.security文件中:crypto.policy=unlimited前面的注释去掉,

替换2个jar

 

升级准备:(修改3个dockerfile)(不修改lua,h5,不涉及jdk)
Dockerfile_springboot
Dockerfile_javaapp
升级前:
docker-mirror.siku.cn/basic/centos7-jdk1.8:v1.4
升级后:
docker-mirror.siku.cn/basic/centos7-jdk1.8:v1.5

Dockerfile_tomcat
升级前:
docker-mirror.siku.cn/basic/centos7-jdk1.8-tomcat8:v1.3
升级后:
docker-mirror.siku.cn/basic/centos7-jdk1.8-tomcat8:v1.4

特殊配置:

docker-mirror.siku.cn/basic/centos7-jdk1.8-tomcat8-finance-service:v1.0

 

检查:

部署项目后,检查

md5sum /usr/local/jdk/jre/lib/security/java.security
md5sum /usr/local/jdk/jre/lib/security/policy/limited/*
md5sum /usr/local/jdk/jre/lib/security/policy/unlimited/*

 

7695fdbcd6d08698d49453782d5f5258 /usr/local/jdk/jre/lib/security/java.security
dabfcb23d7bf9bf5a201c3f6ea9bfb2c    /usr/local/jdk/jre/lib/security/policy/unlimited/local_policy.jar
ef6e8eae7d1876d7f05d765d2c2e0529 /usr/local/jdk/jre/lib/security/policy/unlimited/US_export_policy.jar


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM