【发布时间】:2012-09-05 15:23:13
【问题描述】:
我有一个用 C# 编写的客户端和一个用 JAVA 编写的服务器。因此,当我尝试连接时,我在服务器 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
【问题讨论】:
-
server.setEnabledCipherSuites(server.getEnabledCipherSuites()) 什么都不做。如果你不知道自己在做什么,我强烈建议你不要乱用这样的 SSL 参数。