gpt4 book ai didi

Java SSLServerSocket 提供了错误的证书

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:49 25 4
gpt4 key购买 nike

我目前正在尝试将我的守护进程从一个常规的未加密的守护进程更改为使用 SSL 的守护进程。

我正在按照以下方式执行此操作:

System.setProperty("javax.net.ssl.keyStore", "keyfile.jks");
System.setProperty("javax.net.ssl.trustStore", "keyfile.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "testtest");

System.out.println("Starting ssl socket for encrypted communication...");
SSLServerSocketFactory sslServerSocketFactory = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
SSLServerSocket sslServerSocket = (SSLServerSocket) sslServerSocketFactory.createServerSocket(Settings.listenPortSsl);
SSLServerSocket sslServerSocket = (SSLServerSocket) ssf.createServerSocket(Settings.listenPortSsl);
System.out.println("SSL-Server started.");
while(!stopRequested)
{
System.out.println("SSL-Server - Waiting for connection.");
SSLSocket clientSideConnection = (SSLSocket) sslServerSocket.accept();
// do stuff for the client
}

我的 keystore 如下所示:

C:\SW Setup>keytool -list -keystore keyfile.jks -storepass testtest

Keystore-Typ: JKS
Keystore-Provider: SUN

Ihr Keystore enthõlt 2 Eintrõge.

localserver, 27.12.2013, trustedCertEntry,
Zertifikatsfingerabdruck (MD5): D1:B1:8F:91:C2:1F:7F:85:70:AE:8B:F3:25:9D:9A:65
myname, 27.12.2013, PrivateKeyEntry,
Zertifikatsfingerabdruck (MD5): AF:DA:AD:F0:09:A5:9E:3C:D3:F0:6C:D9:FE:1F:DC:F0

我创建了一个签名请求,由我的 (Windows) CA 签名并将其导入到这个 keystore 中。据我了解,如果只有一对公钥/私钥,它会选择那个,不是吗?我还再次导出了公钥并查看了它 - 它已由我的 CA 正确签名。

但是当我尝试连接到我的守护程序时(我通过尝试通过网络浏览器连接到它来测试它)它一直显示一些自签名证书。

有人知道为什么会这样吗?

顺便说一句:我玩过顶部的 System.setProperty 行。如果我输入了错误的文件名或密码,它就不会启动,所以它似乎真的加载了正确的文件。

最佳答案

您需要导入签名的 CSR,使用相同的别名,因为它只是一个 key 对。

关于Java SSLServerSocket 提供了错误的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20798652/

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