将Java SSLSocket转换为未加密的套接字

时间:2015-10-11 18:03:26

标签: java jsse

我想使用已经使用加密连接交换敏感信息的现有SSL连接,并将其切换回使用未加密的套接字。我正在使用 SSLServerSocketFactory.createServerSocket ,它实际上侦听来自客户端的请求。在完成 ServerSocket.accept 之后,我得到 SSLSocket ,我用它来做一些敏感信息的初始交换。一旦我完成了这个交换,我想以一种未加密的方式使用相同的套接字(就像一个普通的Socket)。它有可能吗?

在网上我收到回复,我可以使用 SSLSocketFactory.createSocket 并将 autoClose 设置为false。鉴于 SSLServerSocketFactory 没有此参数,我不确定这有何帮助。

感谢您的任何意见。

1 个答案:

答案 0 :(得分:1)

不要使用SSLServerSocketFactory。使用普通的ServerSocket来监听并创建一个普通的服务器端Socket,并使用autoClose = false将其提供给SSLSocketFactory.createSocket(Socket,InputStream,boolean),如果适用,则消耗= null。阅读链接的javadoc解释了这是如何工作的。结束连接的SSL部分后,根据需要继续使用Socket