Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   INDY: sslv3 alert handshake failure (https://www.delphipraxis.net/210593-indy-sslv3-alert-handshake-failure.html)

erich.wanker 16. Mai 2022 10:05

INDY: sslv3 alert handshake failure
 
Hallo
ich möchte texte von einem php file in ein Memo speichern
(der Server ist meiner - gehostet bei ionos)

ich bekomme aber immer den Fehler: sslv3 alert handshake failure

Eine Idee - woran es liegen könnte? (SSLOptions.Method hab ich schon alle durchprobiert)


Danke für Hinweise
Erich

Delphi-Quellcode:
uses
  IdBaseComponent, IdComponent, IdIOHandler, IdIOHandlerSocket,
  IdIOHandlerStack, IdSSL, IdSSLOpenSSL,IdTCPConnection, IdTCPClient,
  IdHTTP, IdSSLOpenSSLHeaders;
Delphi-Quellcode:
function GetPage(URL: string): string;
var
  IdHTTP1: TIdHTTP;
  IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
  Stream: TMemoryStream;
  FileName: String;
begin
  try

    UnLoadOpenSSLLibrary;
    IdOpenSSLSetLibPath( UniServerModule.StartPath);
    LoadOpenSSLLibrary;

    IdHTTP1 := TIdHTTP.Create(self);
    IdHTTP1.HandleRedirects := True;
    IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(self);
    IdSSLIOHandlerSocketOpenSSL.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2, sslvSSLv2,sslvSSLv23,sslvSSLv3];
    IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvSSLv3;
    IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL;




    Stream := TMemoryStream.Create;
    try
      IdHTTP1.Get(URL, Stream);
      UniMemo1.Lines.LoadFromStream(Stream);
    finally
      IdHTTP1.IOHandler.Free;
      Stream.Free;
      IdHTTP1.Free;
    end;
  finally

  end;
end;
Delphi-Quellcode:
procedure UniFrameCreate(Sender: TObject);
begin
     GetPage('https://seilbahn.net/sn/bericht_mo.php');
end;

DeddyH 16. Mai 2022 10:44

AW: INDY: sslv3 alert handshake failure
 
Ich bin mir nicht ganz sicher, aber ich meine auf SO gelesen zu haben, dass man entweder SSLOptions.SSLVersions oder SSLOptions.Method benutzen soll, wobei SSLVersions der Vorzug zu geben ist. Was passiert denn, wenn Du die Method-Zuweisung einmal auskommentierst?

mjustin 16. Mai 2022 11:26

AW: INDY: sslv3 alert handshake failure
 
Der Server seilbahn.net erlaubt nur Verbindungen mit TLS 1.2

https://www.ssllabs.com/ssltest/anal...hideResults=on

Daher sollte

IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvTLSv1_2;

funktionieren.

Alternativ kann man bei aktuellen Indy-Versionen oft ganz auf das Erzeugen/Zuweisen des SSL-Handlers verzichten, da Indy anhand des "https://" automatisch einen SSL-Handler einrichtet. (Quelle: https://www.indyproject.org/2014/12/...y-for-tidhttp/)

erich.wanker 16. Mai 2022 11:31

AW: INDY: sslv3 alert handshake failure
 
Liste der Anhänge anzeigen (Anzahl: 3)
@DeddyH

wenn ich Versionen auskommentiere bekomme ich Fehler:
Bild "versios.jpg"


wenn ich Method auskommentiere bekomme ich Fehler:
Bild "methode.jpg"

@mjustin

habe soeben folgendes Probiert:
Delphi-Quellcode:
    IdHTTP1 := TIdHTTP.Create(self);
    IdHTTP1.HandleRedirects := True;
    IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(self);
  //  IdSSLIOHandlerSocketOpenSSL.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2, sslvSSLv2,sslvSSLv23,sslvSSLv3];
    IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvTLSv1_2;
    IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL;
Erzeugt Fehler:
bild "v1_2.jpg"

DeddyH 16. Mai 2022 13:07

AW: INDY: sslv3 alert handshake failure
 
Sind denn auch die OpenSSL-DLLs in einer aktuellen Version im Suchpfad der Anwendung?

Klaus01 16. Mai 2022 13:23

AW: INDY: sslv3 alert handshake failure
 
Zitat:

Zitat von DeddyH (Beitrag 1505878)
Sind denn auch die OpenSSL-DLLs in einer aktuellen Version im Suchpfad der Anwendung?

.. sollte dann nicht eine Fehlermeldung erscheinen die bedagt das die dll nict geladen werden konnte?
Vielleicht sind sie zu alt?
Mit ssleay32.dll und libeay32.dll Version 1.0.2u
klappt das
Delphi-Quellcode:
  idHttp1 := TIdHttp.Create(nil);
  try
    IdHTTP1.HandleRedirects := True;
    IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(self);
    //    IdSSLIOHandlerSocketOpenSSL.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2, sslvSSLv2,sslvSSLv23,sslvSSLv3];
    IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvTLSv1_2;;
    IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL;
    memo1.Lines.Text := idHttp1.Get('https://seilbahn.net/sn/bericht_mo.php');
  finally
    idHttp1.Free;
  end;
Grüße
Klaus

mytbo 16. Mai 2022 13:41

AW: INDY: sslv3 alert handshake failure
 
Zitat:

Zitat von erich.wanker (Beitrag 1505845)
ich möchte texte von einem php file in ein Memo speichern
(der Server ist meiner - gehostet bei ionos)

Wenn du die mORMot Library einsetzen kannst, dann z.B. so:
Delphi-Quellcode:
uses
  mormot.core.os,
  mormot.net.client;

var
  content: RawByteString;
begin
  content := HttpGet('https://seilbahn.net/sn/bericht_mo.php');
  FileFromString(content, '_testHTMLPage.txt');
Ergebnis: Hello and nice greetings ;-) i hope you enjoy this work

Bis bald...
Thomas

Harry Stahl 2. Jun 2022 19:07

AW: INDY: sslv3 alert handshake failure
 
Zitat:

Zitat von Klaus01 (Beitrag 1505879)
Zitat:

Zitat von DeddyH (Beitrag 1505878)
Sind denn auch die OpenSSL-DLLs in einer aktuellen Version im Suchpfad der Anwendung?

.. sollte dann nicht eine Fehlermeldung erscheinen die bedagt das die dll nict geladen werden konnte?
Vielleicht sind sie zu alt?
Mit ssleay32.dll und libeay32.dll Version 1.0.2u
klappt das

Frage: Wo kann man die aktuellen Dateien

ssleay32.dll und libeay32.dll Version 1.0.2u

runterladen? Stehe gerade vor dem gleichen Problem...

Ich habe gefunden:

https://indy.fulgan.com/SSL/

Der Ordner selber hat ein aktuelles Datum, aber die enthaltenen Dateien tragen das Datum 21.12.2019 (also auch die Zip-Datei mit der u-Version).

Sind das die aktuellen DLL's?

Jedenfalls habe ich auch mit diesen Dateien Probleme, allerdings nur bei GMX (bei T-Online funktioniert die direkte Auswahl "SSLVTLSv_2".

Bei GMX kommt (mit der Auswahl "SSLVTLSv_2") die Fehlermeldung:
SSL3_Get_Record: Wrong Version number

Stelle ich "SSLV23" ein, damit Indy selber versucht eine passende Verbindung herzustellen, kommt zwar zunächst "negotioation finished successfully" aber direkt danach "authentification failed".

Ist das ein spezielles GMX-Problem (die akzeptieren seit 01.06 nur noch SSL 1.2 und 1.3) oder benötige ich eine neuere DLL?

Harry Stahl 2. Jun 2022 20:37

AW: INDY: sslv3 alert handshake failure
 
Kommando zurück: Hatte für das gmxkonto das Passwort testweise geändert, um einer Kundeninfo nachzugehen, dass ein Passwort mit deutschen Umlauten drin ("ß") nicht funktioniert.

Vebindngsproblem ist also das problematische Passwort, nicht die SSL-Verbindung, die funktioniert.
Ist das ein bekanntes Indy-Problem?

Delphi.Narium 3. Jun 2022 12:16

AW: INDY: sslv3 alert handshake failure
 
Kann mir nicht vorstellen, dass Indy sich bei allem an den Standard hält und nur bei Umlauten und / oder ß eine Ausnahme macht.

Hier würd' ich eher auf ein generelles Problem bei der Datenübermittlung, den Spracheinstellungen der jeweiligen Systeme, ... tippen.

"authentification failed" ist eher kein Verbindungsproblem sondern schlicht der Hinweis auf eine ungültige Anmeldung, nach erfolgreichem (technischen) Verbindungsaufbau.

Oder anders formuliert: Es ist keine Fehlermeldung seitens des genutzten Protokolls.

PS:

Fehlermeldungen im Zusammenhang mit GMX, Passwort und Umlauten findet man seit mindestens 2010 im www.
Nicht nur für Indy, sondern auch für Outlook, Thunderbird, ...

Frickler 3. Jun 2022 14:40

AW: INDY: sslv3 alert handshake failure
 
SSL Binaries für 1.0.2u finden sich auch auf der Downloadseite von ICS ganz unten. Die DLLs haben das Änderungsdatum 19.3.2020.

mjustin 3. Jun 2022 16:00

AW: INDY: sslv3 alert handshake failure
 
OpenSSL 1.0.2u DLLs (vom 16. Juni 2020) sind unter https://github.com/IndySockets/OpenSSL-Binaries zu finden


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz