繁体   English   中英

向Java信任库和Sslhandshake添加证书

[英]Adding certificate to Java truststore and Sslhandshake

我使用Java程序(使用HttpUrlConnection)将http请求发送到网站并从那里下载文件。

该网站为“ https”并使用证书。

当我尝试运行代码时,会出现异常:

cause javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我试图用我的浏览器(Mozilla)转到该网站。当我检查证书时,共有三个证书。该站点包含这些证书。

DigiCert高保证EV根CA

-DigiCert高保证CA-3

-thecompanycert(由DigiCert High Assurance CA-3发行)

我用keytool检查我的信任。 信任库仅具有根CA。 够了还是我必须导入其他两个证书? 或仅-companycert?

向Java truststore中添加中间证书有什么风险? 我必须这样做吗?

有人可以帮忙吗?

如果服务器配置正确,则应将站点证书以及构建信任链所需的任何/所有中间证书一起发送。 您似乎要连接到的站点没有发送中间证书。

如果您是站点管理员,则可以更正此问题,而无需弄乱Java客户端信任库。

如果您是最终用户,则可以将中间证书添加到Java信任库中。 您不需要添加站点证书。 但是,请务必与网站所有者联系,并要求他们进行更正。

我几天前也发布了类似的答案

鉴于CA和中间CA已经存在于最新Java版本的默认信任库中,因此除非您使用的是较旧的Java版本,否则无需导入它们。 无论如何,这取决于您对CA的信任程度,但是Java和大多数浏览器已经信任它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM