This problem can be caused by undue manipulation of the enabled cipher suites at the client or the server, but I suspect the most common cause is the server not having a private key and certificate at all.
NB:
ssl.setEnabledCipherSuites(sc.getServerSocketFactory().getSupportedCipherSuites());
Get rid of this line. Your server is insecure enough already with that insecure TrustManager
. Then run your server with -Djavax.net.debug=SSL,handshake,
try one connect, and post the resulting output here.