OpenSSL mit Linux

Antworten
Benutzeravatar
altmetaller
Beiträge: 22
Registriert: Do 12. Nov 2020, 15:04

OpenSSL mit Linux

Beitrag von altmetaller »

Hallo,

ich benutze Ubuntu 20.04 LTS und möchte in einem Programm einen HTML-Quellcode "ziehen". Hier, so sieht das in etwa aus:

Code: Alles auswählen

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
  fphttpclient, openssl;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private

  public

  end;

const meine_url ='https://xxx';
var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var Quelltext: TFPHTTPClient = nil;
begin
   Quelltext := TFPHTTPClient.Create (nil);
   Quelltext.AddHeader ('User-Agent','Mozilla/5.0 (compatible; fpweb)');
   Quelltext.Get (meine_url);
   Quelltext.Free;
end;

end.
Ich habe openssl und libssl-dev in der aktuellen Version installiert:
root@cleversophie:~# aptitude versions openssl
Paket openssl:
p 1.1.1f-1ubuntu2 focal 500
i 1.1.1f-1ubuntu2.16 focal-security,focal-upda 500

Paket openssl:i386:
p 1.1.1f-1ubuntu2 focal 500
p 1.1.1f-1ubuntu2.16 focal-security,focal-upda 500
root@cleversophie:~# aptitude versions libssl-dev
Paket libssl-dev:
p 1.1.1f-1ubuntu2 focal 500
i 1.1.1f-1ubuntu2.16 focal-security,focal-upda 500

Paket libssl-dev:i386:
p 1.1.1f-1ubuntu2 focal 500
p 1.1.1f-1ubuntu2.16 focal-security,focal-upda 500
root@cleversophie:~#
Sobald ich den Button anklicke, erhalte ich einen Fehler vom Debugger: "ESSL failed to create SSL context"

Da meine Kenntnisse größtenteils noch aus Turbo Pascal 3.02 Zeiten stammen, schaue ich hier gerade wie ein Schwein ins Uhrwerk. Wie bekomme ich die Kuh vom Eis?

Gruß,
Jörg

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1360
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: OpenSSL mit Linux

Beitrag von corpsman »

ich hab nur die opensslsockets mit in die uses aufgenommen und dann kommt zumindest mal kein Fehler mehr ...

Code: Alles auswählen

Unit Unit1;

{$MODE objfpc}{$H+}

Interface

Uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
  opensslsockets, fphttpclient, openssl;

Type

  { TForm1 }

  TForm1 = Class(TForm)
    Button1: TButton;
    Procedure Button1Click(Sender: TObject);
  private

  public

  End;
Const
  meine_url = 'https://www.google.com';

Var
  Form1: TForm1;

Implementation

{$R *.lfm}

{ TForm1 }

Procedure TForm1.Button1Click(Sender: TObject);
Var
  Quelltext: TFPHTTPClient = Nil;
Begin
  Quelltext := TFPHTTPClient.Create(Nil);
  Quelltext.AddHeader('User-Agent', 'Mozilla/5.0 (compatible; fpweb)');
  Quelltext.Get(meine_url);
  Quelltext.Free;
End;

End.

--
Just try it

Benutzeravatar
altmetaller
Beiträge: 22
Registriert: Do 12. Nov 2020, 15:04

Re: OpenSSL mit Linux

Beitrag von altmetaller »

Hallo,

das hatte ich auch schon probiert. Da kam „Unit not found“.

Ich guck' mir das morgen mal an warum die fehlt.

Lazarus habe ich mit „apt-get lazarus“ installiert. Vielleicht war die nicht in den Abhängigkeiten?

Gruß,
Jörg

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1360
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: OpenSSL mit Linux

Beitrag von corpsman »

Die unit ist teil meines FPC-Compilers
ich nutze da 3.2.0 evtl ist das dein Problem :?:
--
Just try it

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

Re: OpenSSL mit Linux

Beitrag von theo »

"opensslsockets,pas" gehört seit Jan. 2019 zu den FPC Quellen.
Offenbar hast du eine ältere FPC Version.

https://sourceforge.net/projects/lazaru ... s%202.2.2/

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5236
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: OpenSSL mit Linux

Beitrag von af0815 »

Lazarus -> Menü Help(Hilfe) -> About Lazarus (Über Lazarus)

dann öffnet sich ein Dialog mit der Versionsinfo von Lazarus und fpc. Mit der rechten Maustaste das Kontextmenü öffen und dort kann man die Information is Clipboard kopieren und bequem dort einfügen, wo man es braucht.

Damit sieht jeder gleich, welche Versionen du installiert hast

Beispiel von mir
Lazarus 2.3.0 (rev main-2_3-607-gae60967b81) FPC 3.3.1 i386-win32-win32/win64
Damit ist klar welche Version man genau hat. Die Versionen vom fpc und Lazarus aus den Distributionen sind - vorsichtig ausgedrückt - manchmal etwas eigenwillig und/oder älter.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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

Re: OpenSSL mit Linux

Beitrag von theo »

af0815 hat geschrieben:
Fr 23. Sep 2022, 11:00
Die Versionen vom fpc und Lazarus aus den Distributionen sind - vorsichtig ausgedrückt - manchmal etwas eigenwillig und/oder älter.
Ja. Bin jetzt kein Ubuntu Spezialist, aber für mich sieht es so aus, als wäre dort das offizielle Package noch bei 3.0.x
https://ubuntu.pkgs.org/20.04/ubuntu-un ... 4.deb.html

Benutzeravatar
Winni
Beiträge: 1330
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: OpenSSL mit Linux

Beitrag von Winni »

Hi!

Die Debian-basierten Distros hängen bei fpc/Lazarus (und auch anderen) ewig hinter der Zeitachse hinterher.

Lösung 1: Die Distro wechseln

Lösung 2: Nie die Distro-Pakete verwenden, sondern die offiziellen deb-Pakete verwenden: https://www.freepascal.org/download.html

Winni

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5236
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: OpenSSL mit Linux

Beitrag von af0815 »

Ubuntu 20.4 ist mal aus dem April 2020. In der LTS wird auch nichts geändert, nur gefixt. Damit ist klar, wieso ein so alten Stand dort eingefroren ist. Aber auch die Libs in der Distibution sind auf den Stand eingefroren. Das ist auch der Vorteil von LTS. Kann beim Programmieren machmal ein Nachteil sein.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
altmetaller
Beiträge: 22
Registriert: Do 12. Nov 2020, 15:04

Re: OpenSSL mit Linux

Beitrag von altmetaller »

Hallo,

naja - wenn 's wenigstens ordentliche Repositories gäbe.

Danke für die Info :-(

Gruß,
Jörg

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5236
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: OpenSSL mit Linux

Beitrag von af0815 »

altmetaller hat geschrieben:
Fr 23. Sep 2022, 12:23
naja - wenn 's wenigstens ordentliche Repositories gäbe.
Na ja, unter Linux ist es verbreitet, das man sowas selbst aus dem tarball baut :mrgreen:

Ich verwende für mich fpcupdeluxe https://wiki.freepascal.org/fpcupdeluxe/de (Hinweis, die englische Seite ist ausführlicher) als installer für den fpc und Lazarus. Damit kann ich den fpc und Lazarus jederzeit in beliebiger Variante installieren lassen. Das wichtigste beim fpcupdeluxe ist, das man vorher die benötigten Pakete schon insttalliert hat. Die stehen in der Anleitung drinnen.

Das fpcupdeluxe die Fähihkeit hat, mehrer Installation auch parallel zu verwalten, mache ich mir in meinem Home-Verzeichnis ein data Verzeichis und dort ein Unterverzeichnis stable an. Dort lasse ich die aktuell stabile Version von fpc und Lazarus hineininstallieren. Zuerst den fpc und dann wenn das geklappt hat erst Lazarus. Geht relativ einfach, ich habe aber einiges an Übung damit - daher bin ich nicht unbedingt ein Maßstab.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
altmetaller
Beiträge: 22
Registriert: Do 12. Nov 2020, 15:04

Re: OpenSSL mit Linux

Beitrag von altmetaller »

Hallo,
corpsman hat geschrieben:
Do 22. Sep 2022, 16:19
ich hab nur die opensslsockets mit in die uses aufgenommen und dann kommt zumindest mal kein Fehler mehr ...
Danke, damit hängt es offenbar tatsächlich zusammen.

Ich habe fpc inklusive Sourcecodes sowie Lazarus als .deb von der offiziellen Seite gezogen und die Abhängigkeiten über die Ubuntu 20.04 LTS Repositories erfüllt. Ich bin jetzt zumindest schon einmal so weit, dass ich keine Fehlermeldung bekomme :-)

Gruß,
Jörg

Benutzeravatar
six1
Beiträge: 654
Registriert: Do 1. Jul 2010, 19:01

Re: OpenSSL mit Linux

Beitrag von six1 »

af0815 hat geschrieben:
Fr 23. Sep 2022, 13:52
altmetaller hat geschrieben:
Fr 23. Sep 2022, 12:23
naja - wenn 's wenigstens ordentliche Repositories gäbe.
Na ja, unter Linux ist es verbreitet, das man sowas selbst aus dem tarball baut :mrgreen:

Ich verwende für mich fpcupdeluxe https://wiki.freepascal.org/fpcupdeluxe/de (Hinweis, die englische Seite ist ausführlicher) als installer für den fpc und Lazarus. Damit kann ich den fpc und Lazarus jederzeit in beliebiger Variante installieren lassen. Das wichtigste beim fpcupdeluxe ist, das man vorher die benötigten Pakete schon insttalliert hat. Die stehen in der Anleitung drinnen.

Das fpcupdeluxe die Fähihkeit hat, mehrer Installation auch parallel zu verwalten, mache ich mir in meinem Home-Verzeichnis ein data Verzeichis und dort ein Unterverzeichnis stable an. Dort lasse ich die aktuell stabile Version von fpc und Lazarus hineininstallieren. Zuerst den fpc und dann wenn das geklappt hat erst Lazarus. Geht relativ einfach, ich habe aber einiges an Übung damit - daher bin ich nicht unbedingt ein Maßstab.
Genau so mache ich das auch auf meiner VM Entwicklungsumgebung unter Debian! No Problem at all...
Gruß, Michael

Antworten