Nginx中的Gnutls和OpenSSL握手



我正在测试NGINX中的SSL/TLS流媒体,该流将使用Gnutls作为基础TLS API连接到Web服务器。使用gnutls(Gnutls-serv)中的命令行测试工具,整个过程有效,但我不了解逻辑:

NGINX客户端(从实际客户端到Gnutls Server的http请求代理HTTP请求)似乎想多次触摸连接。实际上,在大多数测试中,似乎在服务器使用测试网页响应之前,似乎没有出错3次。使用Wireshark或仅调试消息,看起来客户端的套接字(从Gnutls Server的角度来看)正在关闭并在不同端口上重新打开。最后,在成功的连接上,Gnutls使用了恢复的会议,我认为这是前面提到的成功握手之一。

我未能找到有关这种行为的任何文档,并且想知道这是否只是" nginx"。

尽管握手最终可以与测试程序一起使用,但似乎有点浪费(有多个昂贵的握手),并且在非测试环境中实现握手逻辑会很棘手,而无需实际理解客户试图做的事情。

我认为运输上没有任何超时或问题,测试环境在1个交换机之间连接的同一子网上有几种不同的VM。

nginx版本是最新的主线:1.11.7。我最初使用的是1.10,尽管有更多的运输错误,但行为相似。这些错误似乎可以通过升级很好地清理。

对他人的任何信息或经验都非常感谢!

使用nginx和后端服务器之间的RSA密钥交换,或使用sslkeylogfile ld_preload to nginx具有Wireshark的必要数据来解密数据。

虽然单个传入的连接应仅生成一个传出连接,但nginx中可能有一些优化来获取公共文件(favicon.ico,robots.txt)。

相关内容

  • 没有找到相关文章

最新更新