java - 将 Java SSLSocket 转换为未加密的 Socket

标签 java jsse

我想采用已使用加密连接交换敏感信息的现有 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/

相关文章:

Java SSL 客户端身份验证 : How to select alias in Keystore?

java - 如何将certificate_authorities添加到TLSv1.3中的CertificateRequest消息中

Java:StreamWriter 和 BufferWriter 有什么区别?

java - Android BitmapFactory.decodeFile skia 错误

java - 需要超轻量级的java持久层

java - 通过按按钮使 Textview 可见

java - SmartGWT 与 GWT?

java - 我可以避免使用 JSSE 将 keystore 密码放在命令行上吗?

java - 告诉 java 接受自签名证书(在某种程度上是重复的问题)

java - 如何为 Java 指定服务器首选的 SSL 密码套件顺序?