簡體   English   中英

Nginx中的Gnutls和openssl握手

[英]gnutls and openssl handshake in NGINX

我正在NGINX中測試SSL / TLS流代理,它將使用gnutls作為底層TLS API連接到Web服務器。 在gnutls(gnutls-serv)中使用命令行測試工具可以完成整個過程,但是我無法理解其邏輯:

NGINX客戶端(將來自實際客戶端的HTTP請求代理到gnutls服務器)似乎想多次握手連接。 實際上,在大多數測試中,在服務器響應測試網頁之前,似乎握手3次都沒有錯誤。 使用wireshark或僅調試消息,看起來客戶端的套接字(從gnutls服務器的角度來看)正在關閉並在不同的端口上重新打開。 最后,在成功連接上,gnutls使用恢復的會話,我想這是前面提到的成功握手之一。

我找不到有關這種行為的任何文檔,並且想知道這是否只是“ NGINX問題”。

盡管握手最終可以與測試程序一起使用,但這似乎是浪費的(要進行多次昂貴的握手),並且在非測試環境中實現握手邏輯將非常棘手,而實際上並沒有理解客戶端的操作意圖。

我認為傳輸上沒有任何超時或問題,測試環境是在同一子網中的幾個不同的VM連接在1台交換機之間。

NGINX版本是最新的主線:1.11.7。 我最初使用的是1.10.something,盡管有更多的傳輸錯誤,但行為類似。 這些錯誤似乎可以通過升級很好地清除。

任何其他人的信息或經驗,將不勝感激!

在NGINX和后端服務器之間使用RSA密鑰交換,或者對NGINX使用SSLKEYLOGFILE LD_PRELOAD以獲取Wireshark解密數據所必需的數據。

雖然單個傳入連接應僅生成一個傳出連接,但NGINX可能進行了一些優化以提取公用文件(favicon.ico,robots.txt)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM