为了保护我的Thrift服务器免受最近发现的SSLv3 vulnerability的攻击,我明确说明应该为服务器套接字启用哪些协议:
TServerSocket socket = TSSLTransportFactory.getServerSocket(...);
SSLServerSocket sslServerSocket = (SSLServerSocket) socket.getServerSocket;
sslServerSocket.setEnabledProtocols(new String[] {"TLSv1.1", "TLSv1.2"});
但是,即使使用TestSSLServer的检查仅列出TLSv1.1和TLSv1.2,我仍然可以使用SSLv3与OpenSSL连接:
openssl s_client -connect localhost:1111 -ssl3
如何在Thrift上完全禁用SSLv3,因此在SSL握手期间它已失败?
答案 0 :(得分:2)
似乎我误解了openssl客户端输出。即使第一行有CONNECTED(00000003)
,也会出现错误消息:
140535757866656:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:337:
因此,无法连接到服务器;问题中提供的代码段工作正常。