Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use SSL in Java correctly?

Tags:

java

ssl

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());

1 Answers

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.

like image 200
Jaison Avatar answered Dec 08 '25 15:12

Jaison



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!