Java 具有SHA-2签名证书的SunCertPathBuilderException
我最近为一个网站获得了一个新证书,并按照建议使用SHA-2签名算法生成了它。在我尝试用Java(Java.net.URLConnection)与该网站建立安全连接之前,一切看起来都很好,这导致了Java 具有SHA-2签名证书的SunCertPathBuilderException,java,security,ssl,Java,Security,Ssl,我最近为一个网站获得了一个新证书,并按照建议使用SHA-2签名算法生成了它。在我尝试用Java(Java.net.URLConnection)与该网站建立安全连接之前,一切看起来都很好,这导致了 SunCertPathBuilderException: unable to find valid certification path to requested target 这通常发生在自签名证书上。只是这不是一个自签名证书,HTTPS请求在浏览器中运行良好 当我用SHA-1签名算法重新设置证书密
SunCertPathBuilderException: unable to find valid certification path to requested target
这通常发生在自签名证书上。只是这不是一个自签名证书,HTTPS请求在浏览器中运行良好
当我用SHA-1签名算法重新设置证书密钥时,问题就消失了
为什么我不能将SHA-2签名证书与最新的JDK(1.7.0_45)一起使用?
我能做些什么让JDK接受SHA-2签名证书吗?我们在java中使用了相当多的SHA-2证书,所以我很确定问题不是SHA-2本身,而是从CA发出的 很可能因为它是sha-2证书,所以它是由更新的sha-2 CA颁发的,该CA在web浏览器中注册,但在Java的默认信任库(cacerts文件)中未注册。sha-1证书可能有效,因为它是由信任库中存在的较旧CA颁发的 您需要导出颁发sha-2网站证书的CA证书,并将其导入java信任库。如果将url放入web浏览器,您应该能够单击锁定图标并查看整个链接。CA证书位于顶部
现在java.net.URLConnection应该可以工作了。我们经常遇到这个问题,如果Oracle能够发布cacerts文件的更新,那就太好了。谢谢,这可能就是问题所在。不幸的是,我无法更新所有使用我的软件安全访问我的服务器的人的信任存储。啊,那么这是一个由其他java客户端访问的web服务?