java - setUseClientMode 是什么意思

标签 java ssl jsse

当我尝试将现有的 Socket 连接升级为 SSLSocket 连接并设置 setUseClientMode(true) 时,出现错误 javax.net.ssl.SSLProtocolException: Handshake message sequence violation , 1 当调用 mySSLSocket.startHandshake(); 时。当不设置 setUseClientMode() 时,一切正常,我可以发送和接收消息。我不是在要求修复,只是它的含义以及可能导致它的原因。

最佳答案

它确定这一方是否 (a) 发送或 (b) 期望接收初始握手消息,ClientHello。如果 useClientMode 为真,则此方发送它。除非您真的知道自己在做什么,否则不要将其设置在服务器上。如果您在服务器中并且正在升级已接受的Socket,您必须将其设置为false。否则真的很少有机会完全使用它。

注意 useClientMode=true 是默认值。

关于java - setUseClientMode 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48490311/

相关文章:

java - 生成 RMI stub 和框架的最现代方法是什么?

ssl - 我可以仅使用 makecert.exe 为 Windows Azure 创建自签名 SSL 证书吗?

通过 HTTPS/SSL 的 Java 客户端证书

ssl - 需要身份验证时如何使用启用了 ssl 的服务器连接 channel 连接到队列管理器

java - Spring AOP : Performing Validations

Java 表达式树

java - Java 6 上的 TLS 1.2

java - 收到致命警报 : handshake_failure when calling from Java 1. 8.0_162 到 Java 1.6.0_45-b06

javax.crypto.BadPaddingException : data hash wrong

php - 如果 HTTPS 激活,Laravel 请求 HTTP