我正在尝试连接到此网址,只是使用get请求。 Goberment page 但总是得到错误EIdOSSLConnectError“连接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,Indy 9.00.10
感谢您的任何建议
答案 0 :(得分:1)
似乎该网站需要TLS v1.2,因为当我使用浏览器访问时,这就是谈判的内容。
另外,如果在我的PaleMoon浏览器中,我接下来转到about:config并将pref命名为security.tls.version.max设置为1,我再次访问你的网址然后用TLS v1.0然后我得到: 安全连接失败 连接到loginc.mat.sat.gob.mx时发生错误。 无法与对等方安全通信:没有通用的加密算法。 (错误代码:ssl_error_no_cypher_overlap)
然而,我试过的其他网站(例如银行)仍然可以正常使用TLS v1设置。看来你的目标网站很挑剔,所以我会尝试调整你的线路: SSLOptions.Method:= sslvTLSv1;