连接SSL时出错

时间:2017-08-15 16:16:57

标签: delphi ssl get indy

我正在尝试连接到此网址,只是使用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

感谢您的任何建议

1 个答案:

答案 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;