2017-08-15 7 views
2

J'essaie de me connecter à cette URL en utilisant simplement une requête get. Goberment page Mais toujours obtenir l'erreur EIdOSSLConnectError "Erreur de connexion avec SSL"Erreur lors de la connexion avec SSL

Le code que j'utilise, est cela, il travaille avec d'autres pages, mais pas celui-ci

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

Merci pour tout conseil

+4

Vous utilisez une version extrêmement ancienne d'Indy 9 (la dernière version était 9.0.50). Indy 9 nécessite des DLL OpenSSL personnalisées (et anciennes), il ne supporte pas les versions OpenSSL modernes. Veuillez mettre à niveau vers Indy 10 et utiliser les dernières DLL officielles OpenSSL 1.0.2, que vous pouvez obtenir à partir du [miroir Fulgan] d'Indy (http://indy.fulgan.com/SSL/). –

+0

Votre valeur 'RedirectMaximum' semble attendre des redirections presque à travers l'univers entier (42 est le maximum que l'univers accepte :) – Victoria

+0

J'ai fait la mise à jour à 10.6.2.0, maintenant j'obtiens cette erreur:" Erreur de connexion avec l'erreur SSL: 14094410: SSL routines: SSL3_READ_BYTES: échec d'établissement de liaison d'alerte sslv3 " – crono81

Répondre

1

Il semble que le site veut TLS v1.2, puisque c'est ce qui sera négocié quand je vais là-bas avec un navigateur. En outre, si dans mon navigateur PaleMoon je vais à environ: config et placez le pref nommé security.tls.version.max à 1, je revisite votre URL puis wit TLS v1.0 et je reçois: Connexion sécurisée Échec Une erreur s'est produite lors d'une connexion à loginc.mat.sat.gob.mx. Impossible de communiquer en toute sécurité avec un pair: aucun algorithme de chiffrement commun. (code d'erreur: ssl_error_no_cypher_overlap)

Cependant, d'autres sites que j'ai essayés (tels que les banques) fonctionnent toujours correctement avec TLS v1 défini de cette façon. Il semble que votre site cible est difficile, donc j'essaierais d'ajuster votre ligne: SSLOptions.Method: = sslvTLSv1;

+0

et ce site dit: Votre client utilise TLS 1.0, qui est très vieux, peut-être sensible à l'attaque BEAST, et ne dispose pas des meilleures suites de chiffrement disponibles. Des ajouts comme AES-GCM et SHA256 pour remplacer MD5-SHA-1 sont indisponibles pour un client TLS 1.0 ainsi que de nombreuses suites de chiffrement plus modernes. https://www.howsmyssl.com/ – Bob3411