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