![]() |
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. |
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. ![]() |
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).
|
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 ;-) |
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. |
AW: Problem mit OpenSSL: liefert Connection Error
Zitat:
|
AW: Problem mit OpenSSL: liefert Connection Error
Danke für den Hinweis. Das ist doch schon mal eine gute Nachricht.
|
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. |
AW: Problem mit OpenSSL: liefert Connection Error
Okay, habe ich verstanden. Es liegt trotzdem etwas Arbeit vor mir. Danke für die Hilfe.
|
AW: Problem mit OpenSSL: liefert Connection Error
Du brauchst auf jeden Fall eine
![]() 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:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 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-2025 by Thomas Breitkreuz