AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Datei aus dem Internet herunterladen - geht nicht mehr!

Datei aus dem Internet herunterladen - geht nicht mehr!

Ein Thema von NicoleWagner · begonnen am 8. Dez 2018 · letzter Beitrag vom 5. Jan 2019
Antwort Antwort
Delphi.Narium

Registriert seit: 27. Nov 2017
2.600 Beiträge
 
Delphi 7 Professional
 
#1

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 22. Dez 2018, 20:21
ShowMassage kopieren:

Es muss nix markiert werden, einfach nur Strg+C drücken und hier mit Strg+V einfügen.

Sieht dann ungefähr so aus:
Code:
---------------------------
Programmtitel
---------------------------
Meldungstext
---------------------------
OK  
---------------------------
Du hattest schonmal die Fehlermeldung error: 1409442E: SSL routines:ssl3_read_bytes:tlsv1 alert protocol version Weißt Du noch unter welcher Konstellation, welche DLLs da wo lagen?
Wenn ja, versuche bitte diesen Zustand wieder herzustellen und starte das Programm dann nochmal.
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 28. Dez 2018, 21:06
Wo Du recht hast, hast Du recht, danke für den Tipp!
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project_Download_Url.exe ist eine Exception der Klasse EIdOSSLUnderlyingCryptoError mit der Meldung 'Fehler beim Verbinden mit SSL.
error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------


Das sind jetzt die allerletzten Versionen der 64 bit Compilierung und auch 64 bit dlls mit dem Quellcode:

procedure TForm1.FormCreate(Sender: TObject);
var
DL: THTTPFileDownload;
begin
DL := THTTPFileDownload.Create(nil);
try
DL.DownloadFile('https://*leider vertraulich*.pdf','C:\.....pdf');

// DL.DownloadFile('http:\\www.meinwebserver.com\test\test.zip', 'C:\Temp\test.txt');
finally
DL.Free;
end;
end;

Dieser Fehler tritt auch auf, wenn ich das Programm abbreche und aus der Source neu erzeuge.
Eine andere Fehlerquelle kann noch entstanden sein, dass ich auf 32 bit umgestellt habe, weil meine IDE bei 64 muckte bezüglich der einen Unit und ich danach falsche dlls hatte. Doch das sollte jetzt behoben sein und alles auf 64 bit gesetzt (was ich unbedingt braucht für das Gesamtprojekt)
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
778 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 28. Dez 2018, 23:17
Du schreibst in #1, dass
UrlDownloadToFile(nil, PChar('https://...' ), PChar('...'), 0, nil);
nicht mehr funktioniert.

Weiter schreibst du, dass du IE aktualisiert hast auf Version 11 und dass der Download deiner Datei auch via IE11 nicht klappt. Du musst dies fixen, dann sollte auch UrlDownloadToFile wieder funktionieren. (lokale Firewall etc. prüfen)

Hast du diese Info von m$ gelesen?
https://support.microsoft.com/de-ch/...-2-0-and-tls-1


Du könntest natürlich auch irgend eine nicht geheime Datei auf deinen Server hochladen und die Adresse hier posten, damit wir testen können, ob es an deinem Webserver liegt. Ich glaube eher nicht.
Michael Gasser
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#4

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 29. Dez 2018, 12:22
jetzt wird die Spur heiß.
Einiges zum Verständnis dämmert mir jetzt, doch ein Licht ist mir damit noch nicht aufgegangen.
Erstmal habe ich Infos zu den Protokollen (nein, leider, es ist nicht meine eigene Site, die hätte 24 Stunden Support):

Aktive Protokolle
TLS 1.2

Inaktive Protokolle
TLS 1.1
TLS 1.0
SSLv2
SSLv3

Spannend ist dieser Satz von Deinem MS Link, das mir zuvor entging: "Verwendung von clientseitigen Zertifikaten eine HTTPS-Verbindung über TLS 1.2 müssen Sie SSL 2.0 deaktivieren". Wo geht das bloß? Ich habe alle Karteireiter des ie durch, doch finde nichts. Wenn das standardmäßig deaktiviert ist, ist das ganz sicher eine Blockade.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#5

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 29. Dez 2018, 15:08
Soweit ich weiß, ist SSL 2.0 (und IIRC auch SSL 3.0) bei IE11 standardmäßig sowieso deaktiviert - ersteres steht auch so auf der von Michael II verlinkten MS-Seite.

Um aber die Frage zu beantworten: Die Einstellungen zur Verschlüsselung befinden sich in Systemsteuerung > Internetoptionen > Register Erweitert > Abschnitt Sicherheit (fast ganz unten). Ich bin mir ziemlich sicher, dass auch bei dir nur TLS 1.0, 1.1 und 1.2 aktiviert sind.

Grüße
Dalai
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.600 Beiträge
 
Delphi 7 Professional
 
#6

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 29. Dez 2018, 15:19
Die Fehlermeldung
Code:
error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol versio
besagt, dass es ein Problem mit SSL v3 gibt. Wir wissen aber, dass der Server "nur und ausschließlich" TLS 1.2 unterstützt.

Es muss also erstmal die Stelle gefunden werden, an der gesagt wird: "Stelle eine Verbindung zwingend mit TLS 1.2 her."

Weiter oben hatte ich einen dementsprechenden Vorschlag schonmal für die Indykomponenten gemacht.

Es gibt leider einige Server, mit denen kann man nix aushandeln, da muss man angeben, welche TLS / SSL-Variante man nutzen möchte.

Hilft für den IE eventuell eine dieser Seiten?
https://warwick.ac.uk/services/its/s...p/tls1-eol/ie/
https://www.bahn.de/micro/view/tls/tls-webbrowser.shtml
Ansonsten bitte hier schauen, ob noch wer 'nen erfolgversprechenden Hinweis / Tipp hat:
https://www.google.com/search?q=ie+tls+1.2&btnG=Suche

Den IE ggfls. so konfigurieren, dass er nur TLS 1.2 nutzt. (Das kann man ja später ggfls. wieder ändern.)

Um das Delphi-Problem kümmern wir uns erst wieder, wenn Du uns das erfolgreiche Laden der PDF-Datei via IE bestätigt hast. Vorher ist das zwecklos.

PS:

Die SSL-Komponente von Indy nutzt standardmäßig kein TLS 1.2.
Da im Constructor von THTTPFileDownload aber nur das Create der SSL-Komponente aufgerufen wird und keine weiteren Protokolleinstellungen erfolgen, wird kein TLS 1.2 genutzt, es kann also keine Einigung über das zu nutzende Protokoll zwischen Client und Server erfolgen. Der Constructor von THTTPFileDownload muss um die Zeile IOHndl.SSLOptions.SSLVersions := [sslvTLSv1_2]; ergänzt werden, dann "kann er nur" das vom Server geforderte TLS 1.2.
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
167 Beiträge
 
Delphi XE3 Professional
 
#7

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 29. Dez 2018, 18:51
Ich habe jetzt (danke Dalai!) TLS 1.2 als einziges aktiviert.
Und bin einen Schritt weiter und zwar sehe ich eine neue Fehlermeldung im IE, die da lautet:

Es besteht ein Problem mit dem Sicherheitszertifikat der Website.
Klicke ich auf "trotzdem öffnen", lese ich sowas wie: "das Zertifikat wurde für eine andere Website ausgestellt".
Danach schlägt sich der Browser mit der Version des pdf-Software herum, doch das wäre eine andere Baustelle. Mit 99%iger Chance könnte ich die Datei also mit "weiter" und "trotzdem öffnen" mit vielen Klicks öffnen.
Da Delphi diese Klicks nicht tut, sperrt mit hoher Wahrscheinlichkeit das Zertifikat im IExplore.

Ich habe jetzt die Domain und die IP unter "vertrauenswürdige Websites" eingetragen. Half nicht.

Auf "gesperrte Zerrifikate überprüfen" habe ich deaktiviert, ebenso wie "auf gesperrte Serverzertifikate überprüfen"
(das geht auf der VM, sie darf ohnehin nicht ins Internet, weil zu offen konfiguriert). Half nicht.

Danke für die Zeile im Code, die werde ich sicher einfügen!
Doch vorher scheint mir der ie die Sache abzuwürgen wegen des Zerfikates.
Wie kann ich ihn "beruhigen"? Ich probierte, das Zertifikat zu importieren, doch da ich das nicht wirklcih kann, denke ich, es hat eher nicht geklappt als schon.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.600 Beiträge
 
Delphi 7 Professional
 
#8

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 29. Dez 2018, 19:35
Habe keine Ahnung, wie Indy mit den Zertifikatsprobleme umgeht.

Alleine die Tatsache, dass Du derartige Fehlermeldungen bekommst, bedeutet aber schonmal: Der sich der IE und der Server, der die PDF zu liefern hat, unterhalten können. Die auftretenden Probleme sind wohl eher auf eine nicht wirklich optimale Konfiguration des Servers zurückzuführen.

Hier könnte jetzt aber ein Versuch mit den Indy-Komponenten eventuell erfolgreich sein.

Ein bisserl Info eventuell hier:
http://germanylandofinnovation.com/q...zertifikat-ssl
https://stackoverflow.com/questions/...ertificate-ssl
https://forums.embarcadero.com/threa...hreadID=118720

Mir scheint, dass man mit den Indys und OpenSSL die Zertifikatsprüfung ignorieren / überspringen kann, so dass dort das Zertifikatsproblem nicht auftritt. Wäre einen Versuch wert.

Was sagt Dir denn jetzt THTTPFileDownload mit der zusätzlichen Zeile IOHndl.SSLOptions.SSLVersions := [sslvTLSv1_2]; ?
Funktioniert es so eventuell schon, wenn nein, welche Fehlermeldung bekommst Du?
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
562 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Datei aus dem Internet herunterladen - geht nicht mehr!

  Alt 29. Dez 2018, 21:55
Die Meldung muss nicht zwingend zum Fehler passen. Lass dir die Zertifikatskette anzeigen und schauen ob die Zertifikate aktuell sind. Das sorgt gerne für Verwirrung.

Kleine Anmerkung zum Download mit dem IE welche ich beim Schmökern im Netz fand. Funktion DeleteUrlCacheEntry nicht vergessen ansonsten bleibt die File im Cache und wird nicht nochmal runtergeladen.

Ansonsten viel Spaß. Verstehe einer warum man alles in eine Applikation muss einbauen. Aber gut jeder wie er will.

Ich würde mir die File so wie in dem zu Beginn geposteten Code holen.

In einer Mußestunde schaust du dir dann zumindest mal Chilikat an oder Indy in Depth.


Ich habe jetzt (danke Dalai!) TLS 1.2 als einziges aktiviert.
Und bin einen Schritt weiter und zwar sehe ich eine neue Fehlermeldung im IE, die da lautet:

Es besteht ein Problem mit dem Sicherheitszertifikat der Website.
Klicke ich auf "trotzdem öffnen", lese ich sowas wie: "das Zertifikat wurde für eine andere Website ausgestellt".
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 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