林用Delphi XE2與印第10.5.8.0利用Indy 10 IdHTTP使用TLS 1.2
目前我需要改變我們的服務器只使用一個連接TLS 1.2,此刻我們正在使用TLS 1.0
作爲IdHTTP的處理程序,正在使用IdSSLIOHandlerSocketOpenSSL。
我試圖改變方法sslvTLSv1_2和它不工作作爲連接給出了一個錯誤: 「錯誤與SSL連接錯誤:1409442E:SSL例程:SSL3_READ_BYTES:tlsv 1個警報協議版本」
使用默認密碼列表IM,不知道如果我需要任何特定的加密算法(目前要求到服務器提供商知道他們所使用的密碼)
這是處理程序的配置:
我不習慣像以前一樣使用SSL連接,它使用默認設置並且一切正常。
我試圖檢查WireShark,並在兩種情況下(當方法是sslvTLSv1_2或sslvTLSv1)我得到同樣的錯誤指向tls版本1.0。
方法sslvTLSv1:
方法sslvTLSv1_2:
請點我在正確的方向,如果我在想念的東西。
非常感謝您提供的所有幫助。
P.S:剛剛收到服務器提供商的迴應,他們使用AES_128_GCM作爲密碼,它是否在默認密碼列表中?
是Wireshark>客戶端Hello包:
你的屏幕截圖顯示了致命的TLS警告,但該客戶問候包是什麼樣子?服務器拒絕ClientHello請求的TLS版本。至於密碼,缺省密碼列表在IdSSLOpenSSLHeaders單元的'SSL_DEFAULT_CIPHER_LIST'常量中定義。 –
在任何情況下,10.5.8都是Indy的過時版本。目前的版本是10.6.2(撰寫本文時是5361版)。您應該認真考慮升級,特別是如果您打算使用最新版本的OpenSSL,由於最近的OpenSSL API中斷更改(導致10.5.8無法加載OpenSSL DLL),10.5.8無法再使用該版本。此外,Indy的新版本無論如何都有更好的TLS 1.1和1.2支持。 –
@RemyLebeau謝謝你的回覆,我已經添加了客戶端hello包,會考慮升級indy,看看是否有任何幫助,再次感謝提示。 – vexen