HTTPS ohne OpenSSL?

Rund um die LCL und andere Komponenten
Antworten
MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

HTTPS ohne OpenSSL?

Beitrag von MmVisual »

Hallo,

Mein Provider hat leider umgestellt auf HTTPS und HTTP wird automatisch immer zu HTTPS, das ist echt doof, nun kann ich nicht mehr einfach eine Versionsinfo von meiner EXE laden.
Gibt es eine Komponente mit der ich per GET Befehl eine HTTPS Seite laden kann ohne dass ich extra die OpenSSL DLL's benötige?

Beispiel: http://www.mmvisual.de/download/version.xml

Die EXE läuft Stand allone in allen möglichen Betriebssystemen und wenn ich da noch zusätzlich dieses OpenSSL brauche, dann verkompliziert es die Einfachheit von der EXE enorm.

Vielen Dank für die Hilfe.

VG Markus.
Zuletzt geändert von MmVisual am So 15. Jan 2023, 23:26, insgesamt 1-mal geändert.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: HTTPS ohne ObenSSL?

Beitrag von theo »

Kannst du das nicht so konfigurieren, dass nicht automatisch umgeleitet wird?
Bei meinem Provider ist das eine Option.

Um SSL Libs wirst du sonst nicht herum kommen, soweit ich weiss.

MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: HTTPS ohne OpenSSL?

Beitrag von MmVisual »

Mein früherer Provider hat seine Firma verkauft, das ging so lange gut bis die nun das ganze vollends in ihre eigene Server umgezogen haben.
Der neue Provider hat eine grottenschlechte Web Konfigurationsoberfläche wo man nichts einstellen kann. :(

Ich habe denen ein Support Ticket geschrieben, mal schauen ob die antworten.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 169
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

Re: HTTPS ohne OpenSSL?

Beitrag von Jorg3000 »

Moin!
Unter Windows geht HTTPS mit Bordmitteln, umgesetzt in der Unit WinINet
https://wiki.freepascal.org/Windows_Pro ... _retrieval
Grüße, Jörg

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: HTTPS ohne OpenSSL?

Beitrag von corpsman »

Da würde ich dann doch lieber die .dll als Ressource ins Projekt hohlen und dynamisch nach laden, ..
--
Just try it

MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: HTTPS ohne OpenSSL?

Beitrag von MmVisual »

Es sollte etwas sein, was nativ funktioniert, also nicht abhängig ist vom OS.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Warf
Beiträge: 1910
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: HTTPS ohne OpenSSL?

Beitrag von Warf »

MmVisual hat geschrieben:
Mo 16. Jan 2023, 08:11
Es sollte etwas sein, was nativ funktioniert, also nicht abhängig ist vom OS.
Naja du könntest einfach über ein IFDEF sowohl die Windows als auch die FPWeb variante einbauen. Unter Linux (und ich glaube auch MacOS) sind die OpenSSL bibliotheken systemweit installiert, d.h. da brauchst du dir darum keine sorgen zu machen.

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: HTTPS ohne OpenSSL?

Beitrag von theo »

@MmVisual: Ich glaube du wurdest von deinem Provider erhört. :wink:
So geht es jetzt bei mir:

Code: Alles auswählen

var
  HTTP: THTTPSend; //Synapse unit httpsend
  Res:Boolean;
begin
  HTTP := THTTPSend.Create;
  try
    HTTP.UserAgent:='Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0';
    Res := HTTP.HTTPMethod('GET', 'http://www.mmvisual.de/download/version.xml');
    if Res then Memo1.Lines.LoadFromStream(HTTP.Document);
  finally
    HTTP.Free;
  end;
end;   
Achtung: Einen UserAgent braucht es, sonst mosert deine "Web Application Firewall "

MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: HTTPS ohne OpenSSL?

Beitrag von MmVisual »

Vielen Dank, theo! Es klappt! :D

Ja, diese Fehlermeldung hatte ich auch gesehen und ich konnte damit rein gar nichts anfangen, denn eine "index.html" liegt in dem Ordner bereits drin, damit man da keine "File Walking" betreiben kann. Wenn man kein Web-Spezi ist, dann weiß man das einfach nicht was deren Server noch extra haben will.
Bild1.png
Bild1.png (15.29 KiB) 1424 mal betrachtet
EleLa - Elektronik Lagerverwaltung - www.elela.de

TBug
Beiträge: 177
Registriert: Mi 2. Sep 2015, 11:09
OS, Lazarus, FPC: Lazaurus 2.2.4 FPC 3.2.2
CPU-Target: Windows 32/64bit

Re: HTTPS ohne OpenSSL?

Beitrag von TBug »

Hallo,
corpsman hat geschrieben:
Mo 16. Jan 2023, 05:37
Da würde ich dann doch lieber die .dll als Ressource ins Projekt hohlen und dynamisch nach laden, ..
Das hatte ich auch schon öfters im Sinn, aber scheitere jedesmal kläglich, wenn ich einen Versuch starte, die DLLs für die Nutzung mit den Indy-Komponenten in das Programm einzubinden und zu laden.

Falls jemand ein konkretes HowTo dafür hätte, wäre ich sehr dankbar.

MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: HTTPS ohne OpenSSL?

Beitrag von MmVisual »

Variante 1:
- Die OpenSSL DLL's als Ressource verpacken
- Mit in die EXE linken
- vor dem ersten Nutzen diese aus der Ressource laden und in das gleiche Verzeichnis der EXE ablegen

Variante 2:
- Die OpenSSL DLL's erst zippen und dann als Ressource verpacken
- Mit in die EXE linken
- vor dem ersten Nutzen diese aus der Ressource laden mit Abbrevia entpacken und in das gleiche Verzeichnis der EXE ablegen

Problem: Die Exe darf nicht nach C:\Programme schreiben, dann muss man irgend ein Temp-Verzeichnis verwenden und man muss die DLL aus diesem Temp Verzeichnis einbinden.

Wie man eine DLL direkt aus dem RAM nutzen kann weiß ich nicht, das wäre jedoch die "Krönung", dann muss man diese nicht unbedingt auf der Festplatte ablegen.

So ähnlich mit Dateien in Ressource packen habe ich es mit der Programm Hilfe gemacht, alle HTML Dateien rein in die Ressource, dann kann man diese innerhalb der EXE als Stream nutzen und über eine THTMLViewer Komponente laden, ganz ohne Dateien.
Jedoch wie man eine DLL als Stream laden kann weiß ich nicht (LoadLibrary(Stream: TStream) gibt es nicht, bzw. GetProcAddress(Stream, FunctionName) auch nicht).
EleLa - Elektronik Lagerverwaltung - www.elela.de

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: HTTPS ohne OpenSSL?

Beitrag von Socke »

MmVisual hat geschrieben:
Mo 16. Jan 2023, 19:38
Wie man eine DLL direkt aus dem RAM nutzen kann weiß ich nicht, das wäre jedoch die "Krönung", dann muss man diese nicht unbedingt auf der Festplatte ablegen.
Zumindest hat es mal jemand für Windows versucht: https://github.com/fancycode/MemoryModule
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 169
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

Re: HTTPS ohne OpenSSL?

Beitrag von Jorg3000 »

Socke hat geschrieben:
Mo 16. Jan 2023, 20:34
MmVisual hat geschrieben:
Mo 16. Jan 2023, 19:38
Wie man eine DLL direkt aus dem RAM nutzen kann weiß ich nicht, das wäre jedoch die "Krönung", dann muss man diese nicht unbedingt auf der Festplatte ablegen.
Zumindest hat es mal jemand für Windows versucht: https://github.com/fancycode/MemoryModule
Moin!
Und hier die Adaption für Delphi/Lazarus: https://github.com/Fr0sT-Brutal/Delphi_MemoryModule

Ich habe es noch nicht getestet, bin aber interessiert. Leider kann ich aus der Beschreibung nicht herauslesen, ob es auch für 64-Bit DLLs funktioniert.
Ich hatte vor Jahren mal eine Umsetzung gefunden, die damals nur mit 32 Bit funktionierte und deshalb für mich uninteressant war.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: HTTPS ohne OpenSSL?

Beitrag von Socke »

Jorg3000 hat geschrieben:
Di 17. Jan 2023, 05:54
Leider kann ich aus der Beschreibung nicht herauslesen, ob es auch für 64-Bit DLLs funktioniert.
Zumindest hat man sich im Code ein paar Gedanken zu 64Bit und auch zum FPC gemacht:

Code: Alles auswählen

{$IFDEF FPC}
  {$mode delphi}
  {$IFDEF CPU64}
    {$DEFINE CPUX64}
  {$ENDIF}
{$ENDIF}
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1435
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: HTTPS ohne OpenSSL?

Beitrag von fliegermichl »

Ich habs nicht compiliert bekommen auch nicht 32 Bit

Antworten