java.security.cert.CertificateException: Certificates does not conform to algorithm constraints

今天抓取程序出錯(cuò),報(bào)異常

java.security.cert.CertificateException: Certificates does not conform to algorithm constraints

百度一下,很快知道了原因和解決方案

原因:

JDK默認(rèn)禁用了一些加密算法,因?yàn)橛X的這些加密算法的強(qiáng)度不高

解決方案:

將%JAVA_HOME%/jre/lib/security/java.security文件里

jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

改為

#jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

重新運(yùn)行異常消失,問題解決

但領(lǐng)導(dǎo)認(rèn)為這個(gè)解決方案可能會(huì)影響別的程序,要求在java命令運(yùn)行參數(shù)里解決這個(gè)問題。

仔細(xì)研讀%JAVA_HOME%/jre/lib/security/java.security文件

發(fā)現(xiàn)線索

#

# Determines whether this properties file can be appended to

# or overridden on the command line via -Djava.security.properties

#

security.overridePropertiesFile=true

復(fù)制java.security文件,注釋掉jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024,文件保持為my.java.security

啟動(dòng)程序 java -Djava.security.properties=./my.java.security DemoApplication,結(jié)果還是拋出異常。

仔細(xì)一看一想,犯了思維定式的錯(cuò)誤,這里不是用my.java.security代替java.security,而是用my.java.security
里的屬性去覆蓋java.security的屬性,#jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024就是沒有jdk.certpath.disabledAlgorithms屬性,還是用的java.security里的屬性jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024


這里想明白就很簡單了,把my.java.security里的內(nèi)容刪的只留下

jdk.certpath.disabledAlgorithms=

再次運(yùn)行java -Djava.security.properties=./my.java.security DemoApplication,異常消失,問題解決

圓滿完成任務(wù) V

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容