JAVA“无法验证证书。将不执行该应用程序。”提示解决办法
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun)
笔者的一台电脑安装了Java 8 update 361。
需要使用UBNT网桥上的AirView应用(JAVA),但运行时提示:
应用程序出于安全原因被阻止
无法验证证书。
将不执行该应用程序。
名称:AirView
发行者:Ubiquiti Inc.
位置:http://172.16.x.x:80
笔者先前已经在控制面板——Java——安全——“例外站点”列表中加入了上述地址,在以前的旧版Java上是可以正常运行的。
但自从Java更新到某个版本后(具体无从考证了),就出现了这个“无法验证证书”的问题。
笔者又尝试在控制面板——Java——高级中,将几个证书撤销检查设置为“不检查”。但仍然没有效果,依旧报告相同的错误信息。
既然是证书有问题,那就在弹出提示时,查看一下JAVA应用的证书。
发现应用的证书是SHA256算法。但在证书路径中,有父(根)证书在使用SHA1算法。
那么会不会是SHA1算法被JAVA所禁止了?
答案就在C:\Program Files\Java\jre1.8.0_361\lib\security\java.security文件中。
发现这么几行:
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
又上网查询了一下,官方讲得很清楚:
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.security
configuration file (or override it by using thejava.security.properties
system property) and removing "SHA1 usage SignedJAR & denyAfter 2019-01-01" from thejdk.certpath.disabledAlgorithms
security property and "SHA1 denyAfter 2019-01-01" from thejdk.jar.disabledAlgorithms
security property.
Java™ SE Development Kit 11, 11.0.17 Release Notes
也就是说,JRE从某个版本开始(大约是2021年的第三季度),默认阻止签名证书使用SHA1算法的应用。但也有例外,就是签名时间戳早于2019年1月1日的,不受此限制。
因此,只需要在java.security文件中找到两行带有“denyAfter 2019-01-01”的代码,用#将其注释掉即可。
保存文件,之后就可以运行先前的java应用了。
总结
到此这篇关于JAVA“无法验证证书。将不执行该应用程序。”提示解决办法的文章就介绍到这了,更多相关JAVA 无法验证证书。将不执行该应用程序内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!
相关文章
SpringBoot+JPA?分页查询指定列并返回指定实体方式
这篇文章主要介绍了SpringBoot+JPA?分页查询指定列并返回指定实体方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12spring的xml文件打开没有namespace等操作选项的解决方案
这篇文章主要介绍了spring的xml文件打开没有namespace等操作选项的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09SpringCloud解决Feign异步回调问题(SpringBoot+Async+Future实现)
这篇文章主要介绍了SpringCloud解决Feign异步回调问题(SpringBoot+Async+Future实现),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-11-11mybatis-plus团队新作mybatis-mate实现数据权限
本文主要介绍了mybatis-plus 团队新作 mybatis-mate 轻松搞定数据权限,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-09-09浅谈一下RabbitMQ、Kafka和RocketMQ消息中间件对比
这篇文章主要介绍了浅谈一下RabbitMQ、Kafka和RocketMQ消息中间件对比,消息中间件属于分布式系统中一个字系统,关注于数据的发送和接收,利用高效可靠的异步信息传递机制对分布式系统中的其余各个子系统进行集成,需要的朋友可以参考下2023-05-05
最新评论