-->

收到此错误:“javax.net.ssl.SSLHandshakeException:没有共同的密码

2019-09-22 04:22发布

我有写在JAVA C#和服务器的客户端。 所以,当我试图连接我的服务器错误javax.net.ssl.SSLHandshakeException: no cipher suites in common ,并在C#“EOF或0字节”。

[C#]:

  TcpClient tc = new TcpClient(server, 1337); 


            using (sslStream = new SslStream(tc.GetStream())){ }

[JAVA]:

   SSLServerSocketFactory ssocketFactory = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
   SSLServerSocket server = (SSLServerSocket) ssocketFactory.createServerSocket(1337);
   server.setEnabledCipherSuites(server.getEnabledCipherSuites());

和Java启动性能:

-Djavax.net.ssl.trustStore=Certificatename -Djavax.net.ssl.trustStorePassword=thereisapw -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol -Djavax.net.debug=ssl TCPServer

Answer 1:

信任库定义你如何去相信,呈现给你的远程证书。 密钥库是你(和你的私钥)的证书。 (更多细节关于差别在这里 。关于“密钥库”的术语可能会造成混淆,因为它可以有两种含义)。

在这里,你正在运行的服务器,但你没有设置自己的证书。 你需要导入/创建一个密钥证书,并把它作为一个密钥。

如果不指定密钥库,服务器将无法找到证书/密钥。 其结果是,这将无法使用任何默认启用的密码套件。


我不知道你在哪里得到这个从,但你并不需要它: -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol



文章来源: Getting this error: “javax.net.ssl.SSLHandshakeException: no cipher suites in common”
标签: java c# .net ssl jsse