2017-08-15 90 views
2

我正在嘗試使用獲取請求連接到此URL。 Goberment page 但總是得到錯誤EIdOSSLConnectError「使用SSL連接錯誤」使用SSL連接時出錯

我使用的代碼,是這樣的,它的工作原理與其他網頁,但不是這一個

IdHTTP1.HandleRedirects := true; 
IdHTTP1.AllowCookies := true; 
IdHTTP1.IOHandler := TIdSSLIOHandlerSocket.Create(IdHTTP1); 
IdHTTP1.CookieManager := TIdCookieManager.Create(IdHTTP1); 
with TIdSSLIOHandlerSocket(IdHTTP1.IOHandler) do begin 
    SSLOptions.Method := sslvTLSv1; 
    SSLOptions.Mode := sslmUnassigned; 
    SSLOptions.VerifyMode := []; 
    SSLOptions.VerifyDepth := 0; 
    PassThrough := True; 
end; 
IdHttp1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0'; 
IdHTTP1.RedirectMaximum := 30; 
sHtml := IdHTTP1.Get('https://loginc.mat.sat.gob.mx/nidp/app/login?id=XACCertiSAT&sid=0&option=credential&sid=0');//<----Error here 

Delphi 7中,印9.00。 10個

感謝您的任何意見

+4

您使用的是Indy 9的過時版本(最新版本是9.0.50)。 Indy 9需要定製的(和舊的)OpenSSL DLL,它不支持現代OpenSSL版本。請升級到Indy 10並使用最新的官方OpenSSL 1.0.2 DLL,您可以從Indy的[Fulgan鏡像](http://indy.fulgan.com/SSL/)獲取這些DLL。 –

+0

您的'RedirectMaximum'值似乎期望重定向幾乎遍及整個宇宙(42是宇宙最大的接受:) – Victoria

+0

我沒有更新到10.6.2.0,現在我得到這個錯誤:「錯誤連接SSL錯誤:14094410:SSL例程:SSL3_READ_BYTES:sslv3警報握手失敗「 – crono81

回答

1

看來,網站要TLS 1.2,因爲這是當我用瀏覽器去那裏得到什麼談判。

另外,如果在我的PaleMoon瀏覽器中,我接下來轉到about:config並將pref命名爲security.tls.version.max設置爲1,我重新訪問您的URL,然後用TLS v1.0和我得到: Secure Connection失敗 連接到loginc.mat.sat.gob.mx期間發生錯誤。 無法與對等設備進行安全通信:沒有常用的加密算法。 (錯誤代碼:ssl_error_no_cypher_overlap)

但是,我嘗試過的其他網站(例如銀行)仍然適用於TLS v1。它看起來你的目標網站是挑剔的,所以我會嘗試調整你的線路: SSLOptions.Method:= sslvTLSv1;

+0

,這個網站上說:你的客戶端使用TLS 1.0,它很舊,可能受到BEAST攻擊,並且沒有最好的密碼套件。用於替代MD5-SHA-1的AES-GCM和SHA256等附加功能對於TLS 1.0客戶端以及許多更現代的密碼套件都是不可用的。 https://www.howsmyssl.com/ – Bob3411