我想采用已使用加密连接交换敏感信息的现有 SSL 连接,并将其切换回使用未加密的套接字。我正在使用 SSLServerSocketFactory.createServerSocket 它实际上监听来自客户端的请求。现在,在执行ServerSocket.accept之后,我得到SSLSocket,我用它来进行一些敏感信息的初始交换。完成此交换后,我想以未加密的方式使用相同的套接字(就像普通套接字一样)。这有可能吗?
在网上,我得到的回复是我可以使用 SSLSocketFactory.createSocket 并将 autoClose 设置为 false。鉴于 SSLServerSocketFactory 没有此参数,我不确定这有什么帮助。
感谢您的任何意见。
最佳答案
不要使用SSLServerSocketFactory
。使用普通的ServerSocket
来监听并创建一个普通的服务器端Socket
并将其提供给SSLSocketFactory.createSocket(Socket,InputStream,boolean) autoClose=false,如果适用,consumed=null。阅读链接的 javadoc 解释了它是如何工作的。结束连接的 SSL 部分后,根据需要继续使用Socket
。
关于java - 将 Java SSLSocket 转换为未加密的 Socket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33068326/