簡體   English   中英

Python SSL/TLS - 在 Python 3.8 上沒有共享密碼,但在 Python 3.6 上工作

[英]Python SSL/TLS - no shared cipher on Python 3.8 but working on Python 3.6

我的服務器可以在 Python 3.6 或 Python 3.8 上運行。 問題似乎出在客戶端。

如果我在 Python 3.6 上運行客戶端,則 TLSv1.2 不會出錯。 但是如果我在 Python 3.8 上運行相同的客戶端代碼,我會在服務器上得到 NO_SHARED_CIPHER,而在客戶端上得到 SSLV3_ALERT_HANDSHAKE_FAILURE。

我懷疑它與服務器或客戶端證書有關。

更新:我創建了一些新的服務器和客戶端證書來試驗: ed25519rsasecp256k1 從我所見,上述問題僅在服務器證書為secp256k1並且客戶端和服務器都運行 Python 3.8(因此使用 TLSv1.3)時出現。 客戶端可以使用任何類型的證書。

... NO_SHARED_CIPHER ...
我懷疑它與服務器或客戶端證書有關。

這是密碼選擇的問題,密碼選擇與證書幾乎沒有任何關系,至少如果證書類型仍然相同,即ECC vs. RSA。 我假設您在工作和非工作情況下仍在使用相同的證書或至少相同的證書類型。

更有可能的是,您的客戶端嘗試使用某些基於 RC4 或 3DES 的密碼,這些密碼今天被認為已過時,因此在使用較新版本的軟件堆棧(即 Python+OpenSSL)時,服務器不再支持這些密碼。

暫無
暫無

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

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