gpt4 book ai didi

java - 在 2 台 PC 之间创建信任证书

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:09 25 4
gpt4 key购买 nike

我的服务器是 Windows Server,带有由 JBoss 运行的 Java keystore 。我知道怎么设置JBoss,所以用JBoss没问题。

我的客户端是带有 openssl 的 Linux Redhat。我想让它与只有 PEM 证书的“wget”(在 https 上)一起工作。最终测试是只运行PEM证书的第三方应用。

我想在这两台计算机之间建立自信任证书。

我尝试了很多很多很多事情......最后,没有任何效果。

有人可以帮助我吗?只需编写所有命令行,剩下的我来解决。

最佳答案

假设您有一个服务器 A 和一个客户端 B。

要将服务器 A 配置为使用 TLS 相互身份验证机制,您的服务器必须有一个 key 对和一个“引用”来验证您的客户端 B,反之亦然。

现在,为了测试,您可以使用以下命令创建一个 CA(证书颁发机构)以供 serverA 使用来签署证书:

[1] ~# openssl genrsa -out caServerA.key 1024
[2] ~# openssl req -new -key caServerA.key -out caServerA.csr
[3] ~# openssl ca -selfsign -keyfile caServerA.key -in caServer.csr -out caServerA.crt

为服务器 A 生成 key 对,并使用之前创建的 CA 对其进行签名:

[1] ~# openssl genrsa -out serverA.key 1024
[2] ~# openssl req -new -key serverA.key -out serverA.csr
[3] ~# openssl ca -keyfile caServerA.key -cert caServerA.csr -in serverA.csr -out serverA.crt

对客户端重复相同的过程。最后你必须有类似的东西:clientB.crt, clientB.key, caClientB.crt.

假设你的服务器是 apache2,那么你必须配置你的 https stuf:

[....]
SSLEngine on
SSLCertificateFile [path_to_your_certificate]/serverA.crt
SSLCertificateKeyFile [path_to_your_certificate]/serverA.key
# this because you have to trust all clients that have certificates signed by caClientB
SSLCACertificateFile [path_to_your_certificate]/caClientB.crt
# this will force server to verify client's identity/certificate
SSLVerifyClient require
[....]

重新启动您的服务器,它已准备好对您的客户端进行身份验证。

对于测试,使用Web 浏览器连接到服务器更简单。但在此之前,您必须使用以下命令以 PKCS12 格式导出您的 key 对:

openssl pkcs12 -export -in clientB.crt -inkey clientB.key -out clientB.pkcs12

现在您可以将此文件导入您首选浏览器的“ key 管理系统”。连接到您的服务器,这就可以了。

您还可以在 Debug模式下激活 Loglevel 以获得更多详细信息。

希望对你有帮助...

关于java - 在 2 台 PC 之间创建信任证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048722/

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