Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SSLServerSocket提供了错误的证书_Java_Ssl_Certificate_Self Signed_Ca - Fatal编程技术网

Java SSLServerSocket提供了错误的证书

Java SSLServerSocket提供了错误的证书,java,ssl,certificate,self-signed,ca,Java,Ssl,Certificate,Self Signed,Ca,我目前正在尝试使用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.pr

我目前正在尝试使用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
}
我的密钥库如下所示:

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对其进行签名,并将其导入到这个密钥库中。据我所知,如果只有一对公钥/私钥,它会选择那一对,不是吗? 我还再次导出了公钥并查看了它——它由我的CA正确签名

但是,当我尝试连接到我的守护进程时,我测试了这一点,只是尝试通过webbrowser连接到它,它会不断提供一些自签名证书

有人知道为什么会这样吗


顺便说一句:我对顶部的System.setProperty行做了一些修改。如果我输入了错误的文件名或密码,它将不会启动,因此它似乎确实加载了正确的文件。

在浪费了更多的时间进行代码检查后,我决定重新创建密钥库,即使它看起来还可以。。。事实并非如此。在创建了一个新的存储之后,私钥和csr终于起作用了,我得到了正式签署的证书!:-

您需要导入已签名的CSR,其别名与以前只有密钥对时的别名相同