如果服务器正在使用SslHandler且客户端不是,则无法写入响应

时间:2012-01-19 17:36:29

标签: netty

如果客户端使用SslHandler且服务器不是,我似乎得到相同的反向行为。 afacit,我在通道的一侧调用handshake()然后没有任何反应。我认为w / SSL的一方正在等待握手响应,因此没有处理写请求,每个人都在等待其他人。

理想情况下,我想得到某种错误或关闭通道,这表示存在不匹配,因此我可以在客户端上抛出相应的错误,以便他们可以适当地启用或禁用SSL。

任何人都知道发生了什么事或建议如何处理这个问题?

编辑:经过进一步研究,看起来在SslHandler的解码方法中,要编码的非SSL有效载荷恰好看起来像SSLv2,它正在出现一个majorVersion = 8。所以SslHandler并没有因为它看起来看起来像是一个有效的响应而在回应中徘徊,但事实并非如此。握手看起来无效,状态仍然是NEEDS_UNWRAP,然后一方等待他们的原始请求,另一方正在等待它能理解的握手响应。如果在检测到SSLv2的块中我强制主要版本为2或3,我得到SSL异常声称它不是SSL / TLS记录,这是真的。我不知道这是不是一个正确的解决方案,或者只是偶然让我得到了正确的行为。

我应该指出,这似乎只解决了SslHandler在服务器上处于活动状态而不是客户端的情况。换句话说,它仍然似乎挂起了解码从未在SslHandler中被调用。

0 个答案:

没有答案