我现在正在使用 Netty 实现代理服务器。 我的代理可以将 http 数据从客户端发送到服务器,反之亦然。 但是当我尝试访问 https 站点时,使用 curl 从客户端到服务器的数据显示 1401E10B:SSLroutines:CONNECT_CR_FINISHED:wrong version number error。 Error message figure
到目前为止我所做的是以下。
客户端到代理管道
<块引用>HttpServerCodec -> HttpObjectAggregator -> ClientToProxyHandler
在 ClientToProxyHandler 中,我的代理服务器使 TCP 连接到远程服务器
用于移除服务器管道的代理
<块引用>HttpClientCodec -> HttpObjectAggregator -> ProxyToServerHandler
在 ProxyToServerHandler 中,只需将来自远程服务器的响应发送到 inboundChannel。
通过这些管道,http 请求可以很好地工作。
使用这些结构,结果显示 TLS 握手失败,如上图。
另外,我认为这不是 curl 中的版本问题,因为当我运行 LittleProxy 并输入相同的 curl 命令时,它可以工作。
答案 0 :(得分:0)
看起来您的管道中没有 SslHandler
,您需要为 https
流量添加它。