不幸的是,我是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”来控制要使用的算法。

10-08 01:11