gpt4 book ai didi

java - 如何将 SSL CA 获取到 Java 服务器

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:33 24 4
gpt4 key购买 nike

所以这可能是一个愚蠢的问题,但我整天都在网上搜索,试图找出如何将受信任的 SSL 证书放入我的 java 服务器。

详细信息:

我创建了一个 Java 服务器,它创建一个 SSLServerSocket 接受连接。我使用 keytool 创建了一个名为 domain.key 的 keystore 以及一个证书请求 (csr)。然后我联系了证书颁发机构 (starfield) 并给了他们我的 csr,他们做了他们的事情并将证书 (crt) 还给我。我有 3 个。一个叫 domain.com.crt,一个叫 sf_bundle.crt,一个叫 sf_intermediate.crt

经过大量搜索后,我发现我需要将证书导入到 keystore 中,并且该 keystore 可以与拥有我的公钥/私钥的 keystore 相同,也可以位于单独的文件中。我选择将它放入一个名为 domain.trust 的单独文件中。

然后我修改了我的服务器以使用以下方法导入信任库和 keystore :

System.setProperty("javax.net.ssl.keyStore", "domain.key");
System.setProperty("javax.net.ssl.trustStore", "domain.trust");

沿着 keystore 密码和信任库密码的相应行。

问题是,当我尝试使用任何客户端连接时,它总是说证书是出售签名的。

我一直在使用http://certlogik.com/ssl-checker/对其进行测试。

我显然错过了一步,但我找不到位置。

任何帮助将不胜感激

最佳答案

The problem is that when i try and connect using any client it always says that the certificate is sell signed.

这表明根 CA 证书正在发送给客户端。
你没有提到你是如何创建你使用的这个单独的 keystore 的。
您应该执行以下操作:

keystore.setKeyEntry("alias", privateKey, password, chain);  

链条将有:
chain[0] --> 你服务器的证书
chain[1] --> 签名者的证书
....
chain[N] --> 到根的签名者

关于java - 如何将 SSL CA 获取到 Java 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13147645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com