2017-08-07 48 views
2

我一直在使用:SSLV3警報握手失敗德爾福印

  • 德爾福XE8

  • 印版本10.6.2.5263

  • 預編譯打開SSL dll文件(贏32位)V1.0.2 .l

  • TIdSSLIOHandlerSocketOpenSSLMethod設置爲sslvSSLv23

向服務器提交POST請求。它在很多個月裏都很有魅力。

突然,野生錯誤彈出:

14094410 SSLV3警報握手失敗

一位同事正在使用SOAP UI通過強制TLS 1.2向相同的服務器提交請求,並且它可以工作。我試圖將TIdSSLIOHandlerSocketOpenSSL1方法設置爲sslvTLSv1_2,並將模式更改爲sslmClient,但結果始終相同。

我認爲通過將方法設置爲sslvTLSv1_2,不可能收到與SSLv3相關的錯誤。

我已經檢查了這些計算器帖子:

和一些其他的線程,但我無法找到這個問題的根本原因。

也許我錯過了一些東西。你能給我一個提示嗎?

+0

TLS是SSL 3.0的擴展,而OpenSSL使用SSLv3功能來實現TLS,這就是爲什麼警報顯示SSLv3。但是,如果沒有關於警報實際說什麼的具體細節,特別是警報編號,則無法知道OpenSSL失敗的原因。另外,你的Indy有點舊了,目前的版本是10.6.2.5432,你應該考慮升級,所以你有最新的OpenSSL支持代碼。 –

+0

Hello Remy,確切的錯誤是:錯誤:14094410:SSL例程:ssl3_read_bytes:sslv3警報握手失敗。我會嘗試獲取最新的Indy版本並重試。 – user3868781

+0

嗨,我已經更新了Indy組件,但現在顯示的版本是10.6.2.0。 – user3868781

回答

0

我自己也有一些網站有這個問題。我已經通過使用TRESTClient而不是TIdHTTPOpenSSL解決了這個問題。

  • TRESTClient
  • TRESTRequest
  • TRESTResponse

您可以設置在Delphi IDE的工具菜單中的URL,認證和參數的REST調試器,並複製到剪貼板的組件給你一個開始。