在最近的1.8.0_151的Java更新中,当我使用允许您将文档推送到Google云端硬盘的库时,我开始遇到异常
error.sun.security.validator.validatorexception:禁用证书签名算法
无论用于生成它的代码如何,此异常意味着什么?有没有人面对它并知道它的工作?它从未发生在以前的任何Java版本中
由于
答案 0 :(得分:0)
使用堆栈跟踪会有所帮助,但是可能你跳过了14x并且代码使用HTTPS或其他TLS来使用带有SHA1签名证书的某些Google(或者其他?)服务器在其链中,因为如果默认值为Google,则141 up禁用此类证书;见http://www.oracle.com/technetwork/java/javase/8u141-relnotes-3720385.html#NewFeature。顺便提一下151是3个月前和141个月前 - 并且公共TLS的SHA1证书已经被正式禁止了近3 年和SHA1 was actually broken for collision almost a year ago。
如果问题确实存在,您可以通过修改jdk.certpath.disabledAlgorithms
中的JRE/lib/security/java.security
来解决此问题,但这可能是寻找使用服务器的更好解决方案最新的证书链。如果图书馆在发生这种情况时没有公开与之交谈的服务器,你可以turn on tracing per JSSERefGuide(虽然这会产生一个很多 )或者根据平台和环境(您没有识别),您可以使用其他网络监控或跟踪工具。