最近,我为一个网站获得了一个新的证书,并按照推荐的SHA-2签名算法生成了它。在我试图用Java (java.net.URLConnection)与该网站建立安全连接之前,一切看起来都很好,这导致了
SunCertPathBuilderException: unable to find valid certification path to requested target这通常发生在自签署的证书上。只是这不是一个自签名的证书,HTTPS请求可以在浏览器上正常工作。
当我用SHA-1签名算法重新对证书进行密钥处理时,问题就消失了.
为什么我不能使用带有最近JDK (1.7.0_45)的SHA-2签名证书?我能做些什么让JDK接受SHA-2签名的证书吗?
发布于 2014-01-23 00:36:13
我们在java中使用了相当多的沙-2证书,所以我很确定问题不是沙-2本身,而是它发出的CA。
这很可能是因为它是一个沙-2证书,它是从一个更新的沙-2 CA发出的,这个CA是在网络浏览器中注册的,但在Java的默认信任库(仙人掌文件)中,不是。沙-1证书可能有效,因为它是从一个较老的CA颁发的,是信任库中的。
您将需要导出颁发了sha-2网站证书的CA证书,并将其导入您的java信任库。如果您将url放到web浏览器中,您应该能够单击锁图标并查看整个链。CA证书是顶部的证书。
现在,java.net.URLConnection应该能工作。我们经常会遇到这个问题,如果Oracle能够发布对仙人掌文件的更新,那就太好了。
https://stackoverflow.com/questions/21127896
复制相似问题