Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 15.12.24 10:36 
Ich verwende in meinem Programm die Indy-Komponenten TIdHTTP und TIdSSLIOHandlerSocketOpenSSL. Wenn ich Text mit s := IdHTTP1.Get(Edit1.Text); auslesen will, entsteht der folgende Fehler:
Zitat:
Fehler beim Verbinden mit SSL.
error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version

Was bedeutet das?

Unter Windows7 funktionierte es noch.

Die Eigenschaft IdHTTP1.Request.UserAgent ist vorgabemäßig "Mozilla/3.0 (compatible; Indy Library)". Mozilla 3.0! Ehrlich gesagt, habe ich keine Ahnung, ob ich das so lassen kann oder irgendwie anpassen muss oder was ich sonst bei IdHTTP1 anpassen muss, damit es wieder funktioniert.

Vielleicht kennt sich da jemand besser aus als ich!

Moderiert von user profile iconTh69: Titel geändert ("Jedi"->"Indy").

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 15.12.24 16:02 
Du scheinst mit irgendeinem Server per Tls1 sprechen zu wollen. Die meisten Server lehnen das mittlerweile als unsicher (zurecht) ab. Irgendwo kann man bestimmt via Indy die zu benutzen Tls Version vorgeben. Zumindest Tls 1.2 solltest du vorgeben, besser 1.3, aber das funktioniert erst ab Windows 11 richtig.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: So 15.12.24 19:27 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Irgendwo kann man bestimmt via Indy die zu benutzen Tls Version vorgeben.

Bei TIdSSLIOHandlerSocketOpenSSL gibt es die Einstellung "SSLVersions" im OI (oder auch per Code):
ausblenden Delphi-Quelltext
1:
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions := [sslvTLSv1];					

Alternativ:
ausblenden Delphi-Quelltext
1:
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1;					

Ist es das, was du meinst?

sslvTLSv1 ist die Voreinstellung, es funktioniert aber leider keine der verfügbaren Optionen: sslvSSLv2, sslvSSLv3, sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2, wobei sslvSSLv23 alle genannten auf True setzt, selbst aber nicht gesetzt werden kann (bleibt immer False).


Und was hat es mit "Mozilla 3.0" auf sich? Diese Version ist doch total veraltet!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19303
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 15.12.24 20:48 
Kann es sein, dass schlicht deine OpenSSL-DLLs zu alt sind? Unter Windows 7 gingen noch TLS 1.0 und TLS 1.1, wohingegen diese in Windows 11 nicht mehr standardmäßig zur Verfügung stehen. Vielleicht hast du aber DLLs, die nichts Neueres können.

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Und was hat es mit "Mozilla 3.0" auf sich? Diese Version ist doch total veraltet!
Das ist nur einn String zur Identifikation des Useragents. Der sagt dem Server also, was für ein Client dranhängt, damit der Server darauf reagieren kann. Zum Beispiel wurde für den Internet Explorer damals wegen Bugs manchmal anderer Code ausgeliefert.


Zuletzt bearbeitet von jaenicke am So 15.12.24 20:48, insgesamt 1-mal bearbeitet
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 15.12.24 20:48 
Zitat:
Und was hat es mit "Mozilla 3.0" auf sich? Diese Version ist doch total veraltet!

Hat nix mit deinem TLS Problem zu tun. In den User Agent kannst du rein schreiben was du willst. Das der Server daran irgendwas filtert ist ein Ding der 00er Jahre. Jeder Serverbetreiber sollte gemerkt haben das man den User Agent beliebig setzen kann und beliebig gesetzt wird und nichts aussagt. Wenn du Nett sein will schreib da den Applikationsnamen deiner Anwendung mit rein. Gibt dem Serverbetreiber eine Möglichkeit für seine Statistiken.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 16.12.24 06:21 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Kann es sein, dass schlicht deine OpenSSL-DLLs zu alt sind?
Kann schon sein, ich weiß nicht... :nixweiss: War nie ein Thema für mich, Internetzugang habe ich, und gut ist's.
Was also soll ich da genau machen? Sind die OpenSSL eine "Delphi-Sache"? Die OpenSSL-DLLs aktualisieren? Wie? :nixweiss:

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Di 17.12.24 06:13 
Habe auch im Internet nichts Hilfreiches zu dem Thema gefunden, also hoffe ich, dass hier jemand eine Lösung hat. Was kann ich tun?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19303
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 17.12.24 13:12 
Die aktuellen DLLs für OpenSSL findest du hier:
github.com/IndySockets/OpenSSL-Binaries
Für 32-Bit brauchst du also die openssl-1.0.2u-i386-win32.zip. Die Dateien kannst du direkt neben deine Exe legen wie gewohnt.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Di 17.12.24 17:17 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Die Dateien kannst du direkt neben deine Exe legen wie gewohnt.

Ich habe beide dll's in den Ordner meiner exe-Datei entpackt und erhalte wieder dies:

ausblenden Delphi-Quelltext
1:
2:
Fehler beim Verbinden mit SSL.
error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version


Oder meintest du "direkt neben deine Exe legen" anders? Ich meine, ich habe früher, unter Windows7, doch auch keine dll-Dateien zu meiner exe gegeben, und es hat funktioniert.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19303
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 17.12.24 17:38 
user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Oder meintest du "direkt neben deine Exe legen" anders? Ich meine, ich habe früher, unter Windows7, doch auch keine dll-Dateien zu meiner exe gegeben, und es hat funktioniert.
Dann lagen diese zufälligerweise irgendwo auf deinem System herum und deine Exe hat die gekapert. ;-)

Kannst du vielleicht eine Beispieladresse nennen, bei der das auftritt? Hast du es mit verschiedenen Servern versucht?
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Di 17.12.24 17:50 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Kannst du vielleicht eine Beispieladresse nennen, bei der das auftritt? Hast du es mit verschiedenen Servern versucht?
Das tritt jedesmal auf, bei entwickler-ecke.de/v....php?p=721850#721850, bei de.wikipedia.org/wiki/, einfach bei jeder Adresse.

Da ich ehrlich gesagt das Ganze nicht wirklich verstehe, (sondern einfach froh war, dass es funktionierte :mrgreen: ), frage ich mich, was du mit "verschiedenen Servern" meinst. Die bereits genannten Einstellungen in TIdSSLIOHandlerSocketOpenSSL? Die Voreinstellung klappt nicht.

Moderiert von user profile iconTh69: Doppelposting entfernt.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19303
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 17.12.24 21:24 
Kannst du bitte einmal eine solche Exe anhängen? Mich würde interessieren, ob es bei mir geht und nach welchen DLLs die sucht. Ich habe 10.1 leider nicht mehr parat.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4792
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 18.12.24 11:12 
Hallo galagher,

du meinst Indy (anstatt JEDI)!? Ich habe deswegen mal den Titel geändert.

Welche Indy-Version benutzt du denn (9 oder 10)?

In der Delphi-PRAXiS gibt es auch ähnliche Themen dazu:
IdHTTP mit SSL
tlsv1 alert protocol version
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 18.12.24 16:14 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Kannst du bitte einmal eine solche Exe anhängen? Mich würde interessieren, ob es bei mir geht und nach welchen DLLs die sucht. Ich habe 10.1 leider nicht mehr parat.

Kann ich leider nicht: Obwohl die EXE nur ca. 2,7 MB hat, bekomme ich vom Forum die Meldung:
Zitat:
Der Dateianhang ist zu groß. Maximale Größe: 5MB


Versuche jetzt, sie in einer zip-Datei zu senden, mal sehen...

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!


Zuletzt bearbeitet von galagher am Mi 18.12.24 16:22, insgesamt 1-mal bearbeitet
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 18.12.24 16:21 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
du meinst Indy (anstatt JEDI)!? Ich habe deswegen mal den Titel geändert.
Indy, sorry!

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Welche Indy-Version benutzt du denn (9 oder 10)?
Ich benutze Indy10.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
In der Delphi-PRAXiS gibt es auch ähnliche Themen dazu:
Sehe ich mir gleich an!
//Edit: Leider nicht hilfreich!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!


Zuletzt bearbeitet von galagher am Mi 18.12.24 16:38, insgesamt 1-mal bearbeitet

Für diesen Beitrag haben gedankt: jaenicke
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 18.12.24 16:26 
zip-Datei im Anhang!
Einloggen, um Attachments anzusehen!
_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19303
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 18.12.24 20:48 
Die Exe lädt die korrekten DLLs, wenn ich sie bereitstelle, aber es geht dennoch nicht. Es kann daher nur daran liegen, was in den Komponenten eingestellt ist, oder an der Indyversion.

Ich bekomme das mit Delphi 10.4 nur, wenn ich den Standard (TLS 1.0) eingestellt lasse. So funktioniert es:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  Http: TIdHTTP;
  IndyOpenSsl: TIdSSLIOHandlerSocketOpenSSL;
begin
  Http := TIdHTTP.Create(nil);
  try
    IndyOpenSsl := TIdSSLIOHandlerSocketOpenSSL.Create(Http);
    IndyOpenSsl.SSLOptions.SSLVersions := [sslvTLSv1_1, sslvTLSv1_2];
    Http.IOHandler := IndyOpenSsl;
    ShowMessage(Http.Get(Edit1.Text));
  finally
    Http.Free;
  end;
end;
Du hattest ja geschrieben, dass du das schon versucht hattest, aber ich glaube, dass da etwas nicht richtig war. Versuch es mal bitte so.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 18.12.24 21:00 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Versuch es mal bitte so.

Da erhalte ich den Fehler:
Zitat:
Fehler beim Verbinden mit SSL.

error:140740BF:SSL routines:SSL23_CLIENT_HELLO:no protocols available.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19303
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 18.12.24 23:00 
Ich hänge mal das komplette Projekt an.
Einloggen, um Attachments anzusehen!

Für diesen Beitrag haben gedankt: galagher
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2550
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 19.12.24 16:54 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Ich hänge mal das komplette Projekt an.

Funktioniert, und funktioniert auch in meinem Programm mit TIdHTTP und TIdSSLIOHandlerSocketOpenSSL mit den richtigen Einstellungen:
ausblenden Delphi-Quelltext
1:
2:
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.SSLVersions := [sslvTLSv1_1, sslvTLSv1_2];
IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;

Bei Get('https://de.wikipedia.org') erhalte ich die Meldung:
Zitat:
HTTP/1.1 301 Moved Permanently

Was hat denn das zu bedeuten? Genau damit hat es unter Windows7 noch funktioniert!

Get('https://de.wikipedia.org/wiki/Wikipedia:Hauptseite') hingegen klappt.

Weiters benötige ich tatsächlich beide dll's - unter Windows7 war das nicht so.

Jedenfalls bin ich einen Riesenschritt weiter!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!