不幸的是,我是SSL的新手。当前,我正在尝试使用Java在客户端和服务器应用程序之间建立安全连接,以下代码对我有用(传输的数据已加密),但是我不知道这是否是正确且安全的解决方案。
客户端:
socket = (SSLSocket) SSLSocketFactory.getDefault().createSocket(host, port);
socket.setUseClientMode(true);
socket.setEnabledCipherSuites(socket.getSupportedCipherSuites());
socket.startHandshake();
服务器端:
sslServerSocket = (SSLServerSocket) serverSocketFactory.createServerSocket(requestPort());
sslServerSocket.setUseClientMode(false);
sslServerSocket.setEnabledCipherSuites(sslServerSocket.getSupportedCipherSuites());
最佳答案
建议不要启用所有密码/协议。最好仅启用所需的密码和协议。如果服务器和服务器都是由您编写的,请选择所需的内容并仅对其进行配置。
socket.setEnabledCipherSuites(...);
socket.setEnabledProtocols(...);
可以在JSSE documentation中看到受支持的密码和协议
或者,您可以使用“jdk.tls.disabledAlgorithm”来控制要使用的算法。