简体   繁体   中英

How to use SSL in Java correctly?

Unfortunately I'm completely new to SSL. Currently I'm trying to set up a secure connection between a client and a server application in Java and the following code works for me (transmitted data is encrypted), but I don't know if this is a correct and secure solution.

Client side:

socket = (SSLSocket) SSLSocketFactory.getDefault().createSocket(host, port);

socket.setUseClientMode(true);
socket.setEnabledCipherSuites(socket.getSupportedCipherSuites());
socket.startHandshake();

Server side:

sslServerSocket = (SSLServerSocket) serverSocketFactory.createServerSocket(requestPort());

sslServerSocket.setUseClientMode(false);
sslServerSocket.setEnabledCipherSuites(sslServerSocket.getSupportedCipherSuites());

It is not advisable to enable all ciphers/protocols. Better that you enabled only the ciphers and protocols you want. If both server and server is written by you, choose what you want and configure only that.

socket.setEnabledCipherSuites(...);
socket.setEnabledProtocols(...);

Supported ciphers and protocols can be seen in JSSE documentation

Or you can use "jdk.tls.disabledAlgorithm" to control what algs you want to use.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM