Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Problem mit OpenSSL: liefert Connection Error (https://www.delphipraxis.net/199747-problem-mit-openssl-liefert-connection-error.html)

subria813 16. Feb 2019 19:11

Problem mit OpenSSL: liefert Connection Error
 
Hallo,
ich benutze für ein Programmsystem Delphi5 mit Indy9. Ich weiß, etwas ältlich, aber es funktioniert eigentlich. Mit dem Programm verbinde ich mich mit dem Internet, d.h. per HTTP.GET und OpenSSL verbinde ich mich zu einem Server. Nun gibt es zwei Server - einen für Produktion und einen für Test - die gleich aufgesetzt sind bzw. sein sollen. Auf beiden Servern sind die SSL-Zertifikate installiert. Wenn ich die Verbindung zum produktiven Server aufbaue, dann klappt das mit den entsprechenden Credentials mit dem Download von Daten einwandfrei. Bei dem Versuch, die gleiche Aktion mit den gleichen Credentials zum Testsystem auszuführen, bekomme ich immer einen SSL Connection Error geliefert. Der Code in beiden Fällen ist bei mir immer identisch, die Credentials ebenfalls. Mit den Credentials kann ich mich "manuell" bei dem Server anmelden, d.h. der Server läuft und ich bin als User dort bekannt. Ich habe keine Idee mehr, woran das liegen könnte. Im Debug-Mode durch die Indy-Resourcen komme ich leider auch nicht weiter. Es wäre prima, wenn jemand eine Idee hätte, wo der Fehler liegt. Danke.

Codehunter 16. Feb 2019 20:58

AW: Problem mit OpenSSL: liefert Connection Error
 
Möglicherweise liefert der eine Server noch ältere bzw. andere Verschlüsselung und Stromchriffren. Indy 9 kann glaube ich gar nicht mit dem aktuellen OpenSSL und TLS 1.2 umgehen. Bin mir aber nicht sicher, weil schon vor ca. 10 Jahren auf Indy 10 umgestiegen. Am besten schaust du dir den Verbindungsaufbau mal mit Wireshark an. Da kannst du am schnellsten feststellen wo es klemmt. Teilweise wirft Wireshark Verbindungsfehler sogar als rote Einträge aus.

Für Indy 10 habe ich mir mal eine Prozedur geschrieben, welche die Secrets in eine Datei ausleitet, sodass man den verschlüsselten Datenstrom mit Wireshark entschlüsseln kann. Vielleicht lässt sich das auch für Indy 9 adaptieren. Allerdings wird dein Problem schon auftreten bevor überhaupt eine Verschlüsselung ausgehandelt wurde.

https://www.delphipraxis.net/198231-...erstellen.html

mjustin 17. Feb 2019 09:18

AW: Problem mit OpenSSL: liefert Connection Error
 
Wenn das Programm überschaubar ist (nur HTTP GET), wäre eine Umstellung auf Indy 10 erwägenswert (Indy 10 läuft auch mit Delphi 5).

Codehunter 17. Feb 2019 10:41

AW: Problem mit OpenSSL: liefert Connection Error
 
Zumal die Entwickler intern wohl schon an Indy 11 arbeiten... In den allermeisten Fällen ist Indy 9 schnell gegen Indy 10 ausgetauscht, weil die Komponenten und deren Members entweder gleich oder zumindest sehr ähnlich sind. Ein Fallstrick könnte Unicode werden, das war bei D5 noch nicht so vorgesehen wie es heute ist.

Zumindest wenn es um die weitere Entwicklung in puncto TLS/SSL geht, stößt man absehbar mit Indy 9 an Grenzen. Denn TLS 1.3 wird kommen, OpenSSL 1.2 wird kommen und beides wird es für Indy 9 nicht geben. Daher wäre eine Migration auf Indy 10 keine schlechte Investition in die Zukunft. Dabei am besten gleich noch eine Abstraktion dazwischen bauen, dann ist der Wechsel von Indy 10 auf Indy 11 dann weniger aufwendig und wird nicht mehr so lang aufgeschoben ;-)

subria813 17. Feb 2019 17:23

AW: Problem mit OpenSSL: liefert Connection Error
 
Vielen Dank für die Tipps.

Wireshark hatte ich mir schon herunter geladen, um damit die Sache demnächst anzugehen. Mal sehen, wie einfach/kompliziert das ist.

Ich weiß, dass Indy 9 nur bis TLSv1 unterstützt. Deswegen habe ich eine Änderung auf Indy 10 schon in Erwägung gezogen. Nur kann ich nicht abschätzen, wieviel Arbeit die Umprogrammierung bedeutet. Ist eine Änderung auf Unicode notwendig?

Ich hatte mir schon vor einiger Zeit Embarcadero RAD Studio XE7 zugelegt und wollte das Ganze migrieren. Nur dann gilt in jedem Fall Unicode für die Stringverarbeitung. Da mein Programm sehr viel mit Strings hantiert, habe ich die Konvertierung bislang gescheut - auch aus Zeitgründen.

mjustin 17. Feb 2019 18:44

AW: Problem mit OpenSSL: liefert Connection Error
 
Zitat:

Zitat von subria813 (Beitrag 1425811)
Ich weiß, dass Indy 9 nur bis TLSv1 unterstützt. Deswegen habe ich eine Änderung auf Indy 10 schon in Erwägung gezogen. Nur kann ich nicht abschätzen, wieviel Arbeit die Umprogrammierung bedeutet. Ist eine Änderung auf Unicode notwendig?

Nein, Indy 10 arbeitet auf Compilern vor Delphi 2009 weiterhin mit AnsiString.

subria813 17. Feb 2019 20:48

AW: Problem mit OpenSSL: liefert Connection Error
 
Danke für den Hinweis. Das ist doch schon mal eine gute Nachricht.

Codehunter 18. Feb 2019 07:23

AW: Problem mit OpenSSL: liefert Connection Error
 
Wegen Unicode würde ich mir jetzt erstmal nicht so große Gedanken machen. In vielen Fällen hat man auch bei D2009 ältere Projekte ohne Änderungen weiterführen können. Knifflig wurde es meistens wenn man mit PChars gearbeitet hat und Win32-Funktionen nutzt. Da wurden vor D2009 die Ansi-Varianten genutzt und danach die Widechar-Varianten.

Lade dir einfach mal die Community Edition runter und teste dein Projekt damit. Indy 10 ist da von Haus aus schon installiert. Jetzt noch auf ein XE7 migrieren macht wenig Sinn, dann lieber ein Upgrade auf die Subscription in Erwägung ziehen.

subria813 18. Feb 2019 17:17

AW: Problem mit OpenSSL: liefert Connection Error
 
Okay, habe ich verstanden. Es liegt trotzdem etwas Arbeit vor mir. Danke für die Hilfe.

MichaelT 19. Feb 2019 10:04

AW: Problem mit OpenSSL: liefert Connection Error
 
Du brauchst auf jeden Fall eine gepatchte Version von Indy 9.

Es ist schon so lange her. Ich hatte mal Troubles (Version die bei D7 mitkam) bspw. mit einem Array das zu klein dimensioniert war.


Zitat:

Zitat von subria813 (Beitrag 1425747)
Hallo,
ich benutze für ein Programmsystem Delphi5 mit Indy9.



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr.
Seite 1 von 2  1 2      

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