JAVA“無法驗證證書。將不執(zhí)行該應(yīng)用程序?!碧崾窘鉀Q辦法
筆者的一臺電腦安裝了Java 8 update 361。
需要使用UBNT網(wǎng)橋上的AirView應(yīng)用(JAVA),但運行時提示:
應(yīng)用程序出于安全原因被阻止
無法驗證證書。
將不執(zhí)行該應(yīng)用程序。
名稱:AirView
發(fā)行者:Ubiquiti Inc.
位置:http://172.16.x.x:80
筆者先前已經(jīng)在控制面板——Java——安全——“例外站點”列表中加入了上述地址,在以前的舊版Java上是可以正常運行的。
但自從Java更新到某個版本后(具體無從考證了),就出現(xiàn)了這個“無法驗證證書”的問題。
筆者又嘗試在控制面板——Java——高級中,將幾個證書撤銷檢查設(shè)置為“不檢查”。但仍然沒有效果,依舊報告相同的錯誤信息。
既然是證書有問題,那就在彈出提示時,查看一下JAVA應(yīng)用的證書。
發(fā)現(xiàn)應(yīng)用的證書是SHA256算法。但在證書路徑中,有父(根)證書在使用SHA1算法。
那么會不會是SHA1算法被JAVA所禁止了?
答案就在C:\Program Files\Java\jre1.8.0_361\lib\security\java.security文件中。
發(fā)現(xiàn)這么幾行:
jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \
RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224, \
include jdk.disabled.namedCurves, \
SHA1 usage SignedJAR & denyAfter 2019-01-01
又上網(wǎng)查詢了一下,官方講得很清楚:
JARs signed with SHA-1 algorithms are now restricted by default and treated as if they were unsigned.
Any JAR signed with SHA-1 algorithms and timestamped prior to January 01, 2019 will NOT be restricted.
Users can, at their own risk, remove these restrictions by modifying the
java.securityconfiguration file (or override it by using thejava.security.propertiessystem property) and removing "SHA1 usage SignedJAR & denyAfter 2019-01-01" from thejdk.certpath.disabledAlgorithmssecurity property and "SHA1 denyAfter 2019-01-01" from thejdk.jar.disabledAlgorithmssecurity property.
Java™ SE Development Kit 11, 11.0.17 Release Notes
也就是說,JRE從某個版本開始(大約是2021年的第三季度),默認阻止簽名證書使用SHA1算法的應(yīng)用。但也有例外,就是簽名時間戳早于2019年1月1日的,不受此限制。
因此,只需要在java.security文件中找到兩行帶有“denyAfter 2019-01-01”的代碼,用#將其注釋掉即可。
保存文件,之后就可以運行先前的java應(yīng)用了。
總結(jié)
到此這篇關(guān)于JAVA“無法驗證證書。將不執(zhí)行該應(yīng)用程序。”提示解決辦法的文章就介紹到這了,更多相關(guān)JAVA 無法驗證證書。將不執(zhí)行該應(yīng)用程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中JavaBean對象和Map的互相轉(zhuǎn)換方法實例
為什么需要將javaBean和map進行轉(zhuǎn)換,在很多應(yīng)用場景中,需要將key=value形式的數(shù)據(jù)與javaBean對象相互轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于Java中JavaBean對象和Map的互相轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2022-11-11
Java數(shù)據(jù)結(jié)構(gòu)之插入排序與希爾排序
在本篇文章,我們將為小伙伴們進行排序概念的基本講解并具體講解其中的兩種基礎(chǔ)排序:插入排序和希爾排序,希望小伙伴們能夠從中有所收獲2023-04-04
java中的FileInputStream三種read()函數(shù)用法
這篇文章主要介紹了java中的FileInputStream三種read()函數(shù)用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
SpringBoot ApplicationEvent之事件發(fā)布與監(jiān)聽機制詳解
本文將深入探討SpringBoot的事件機制,介紹其核心概念、實現(xiàn)方法及最佳實踐,幫助開發(fā)者構(gòu)建更加靈活、可維護的應(yīng)用架構(gòu),希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04

