![](/img/trans.png)
[英]SSL handshake exception: “Algorithm constraints check failed: MD5withRSA”
[英]Algorithm constraints check failed on signature algorithm: MD5withRSA
今天,我想使用HttpClient在AEM中調用Hybris接口。 但是我收到錯誤消息“ java.security.cert.CertPathValidatorException:簽名算法:MD5withRSA的算法約束檢查失敗”。
在這一行中,引發異常“ java.security.cert.CertPathValidatorException:對簽名算法MD5withRSA的算法約束檢查失敗”。
httpClient.executeMethod(request);
我將java.security文件(C:\\ Program Files \\ Java \\ jdk1.8.0_191 \\ jre \\ lib \\ security \\ java.security)中的以下屬性更改為空,但是它不起作用。
jdk.certpath.disabledAlgorithms
jdk.tls.disabledAlgorithms
jdk.jar.disabledAlgorithms
我的JDK版本:jdk1.8.0_191
有人知道如何解決嗎?
謝謝,阿甘
另外: jdk.jar.disabledAlgorithm
屬性與此問題無關。
請確保你實際上已經修改了文件由程序所看到。
Windows的現代版本(從Vista開始為IIRC,可能是七個)不喜歡\\Program Files
和\\Program Files (x86)
下的\\Program Files
,這些\\Program Files (x86)
只能由安裝程序編寫。 他們至少有時要做的一件事是“虛擬化”這樣的寫操作,以隱藏在每個用戶%appdata%
下某個地方的另一個文件中。 搜索后,您會發現很多類似的問題和挫敗感。
調用Security.getProperty()
來檢查程序中實際看到的設置。
如果您無法在標准文件中修復此設置,則可以通過設置sysprop(而非secprop) java.security.properties=filename
或通過在早期調用Security.setProperty()
來覆蓋另一個文件(在更方便的位置)中的設置。您的程序(在加載JSSE / PKIX類之前)。 看到:
放松的SSL算法以編程方式進行約束
Java-鎖定java.security中的TLS版本,但允許通過啟動配置覆蓋每個應用程序嗎?
另外,JDK不一定需要位於\\Program Files*
。 我把它放在另一個頂級目錄中,沒有這些問題。
當然可以告訴負責服務器的人,他們與時俱進:-)
嗨@ dave_thompson_085,
感謝您的重播。 我已通過以下步驟解決了此問題。
我使用命令“ where java”來檢查我真正使用的是哪個JDK。
我重新安裝了該JDK。
我從“ jdk.certpath.disabledAlgorithms”中刪除了MD5,從“ jdk.tls.disabledAlgorithms”中刪除了MD5withRSA
刪除了“ C:\\ Program Files(x86)\\ Common Files \\ Oracle \\ Java \\ javapath;” 從系統變量的路徑
重新啟動計算機,則此問題已解決。
謝謝,阿甘
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.