Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   https web-Server mit indy 10 Fehler: SSL3_GET_Record:wrong version number (https://www.delphipraxis.net/207529-https-web-server-mit-indy-10-fehler-ssl3_get_record-wrong-version-number.html)

Kostas 3. Apr 2021 16:01

https web-Server mit indy 10 Fehler: SSL3_GET_Record:wrong version number
 
Hallo Zusammen,

aktuell versuche dieses Beispiel ein Web-Server und Client per HTTPS zum laufen zum bringen.
https://github.com/rlove/OpenSSL-WinCmd-Snippets
Die aktuellen DLLs habe ich mir über diesen Link geholt
https://indy.fulgan.com/SSL/openssl-...i386-win32.zip


Im root Verzeichnis der exe habe ich meine Zertifikat Dateien abgelegt und dem handler übergeben.
Es ist ein wildcard Zertifikat *.meinedomain.de deshalb kann ich es von Zuhause aus testen home.meinedomain.de
Beim Versuch von außen den Server anzusprechen, bekomme ich am Server die Meldung:
"Fehler beim Annehmen der Verbindung mit SSL. error:1408F108B:SSL routines:SSL3_GET_RECORD:wrong version number"
Im ssl IO handler habe ich nur [sslvTLSv1_2] eingestellt. Auch wenn ich alle SSLVersionen aktiviere, kommt die gleiche Meldung. Ich habe auch ein Satz DLLs die zuverlässig mit INDY und sslvTLSv1_2 funktionieren von einem andere REST-API Projekt welches ebenfalls Indy 10 nutzt. Doch auch die funktionieren nicht.

[Edit] Die Einstellung SSLOptions.Method ist sslvSSLv23


Hat jemand eine Idee?

mjustin 4. Apr 2021 09:11

AW: https web-Server mit indy 10 Fehler: SSL3_GET_Record:wrong version number
 
Funktioniert denn der Zugriff auf den Server innerhalb des lokalen Netzes über einen Browser (Chrome, Firefox, Edge, ...) oder kommt hier auch eine Fehlermeldung?

Hier ist ein minimales Testprojekt für Indy HTTPS Konfiguration:

Delphi-Quellcode:
program IndyHttpsTest;

{$APPTYPE CONSOLE}

uses
  IdSSLOpenSSL,
  IdGlobal, IdHTTPServer,
  SysUtils, Classes, ShellAPI;

procedure Start;
var
  IOHandler: TIdServerIOHandlerSSLOpenSSL;
  Server: TIdHTTPServer;
begin
  // create IOHandler for OpenSSL
  IOHandler := TIdServerIOHandlerSSLOpenSSL.Create;
  IOHandler.SSLOptions.CertFile := 'cert.pem';
  IOHandler.SSLOptions.KeyFile := 'key.pem';
  IOHandler.SSLOptions.RootCertFile := 'cacert.pem';
  IOHandler.SSLOptions.Mode := sslmServer;

  Server := TIdHTTPServer.Create;
  try
    Server.DefaultPort := 443;
    Server.IOHandler := IOHandler;
    Server.Active := True;

    // start the server
    WriteLn(Format('Server is listening on port %d', [Server.DefaultPort]));

    // launch browser
    ShellExecute(0, 'open', PChar('https://127.0.0.1'), '', '', 0);

    // terminate
    WriteLn('Hit any key to terminate.');

    ReadLn;
  finally
    Server.Active := False;
    Server.Free;
  end;
end;

begin
  try
    Start;
  except
    on E:Exception do begin
      Writeln(E.Classname, ': ', E.Message);
      ReadLn;
    end;
  end;
end.
https://github.com/michaelJustin/dar...yHttpsTest.dpr

Es gehört zu diesem Artikel:

https://mikejustin.wordpress.com/201...y-http-server/

Kostas 4. Apr 2021 12:11

AW: https web-Server mit indy 10 Fehler: SSL3_GET_Record:wrong version number
 
Vielen Dank Michael,

dein Beispiel funktionier auf meinen Server mit meinen Zertifikaten und den passenden zwei Files: libeay32.dll, ssleay32.dll.

Da es ein wildcard Zertifikat ist, kann ich es nicht auf localhost laufen lassen. Auf dem Server läuft es allerdings.
Ich bekomme ein 200 OK.

[Edit] Nachdem ich durch deine Demo sicherstellen konnte dass es grundsätzlich funktioniert, habe ich nochmals den Server neu gemacht, und siehe da, alles funktioniert auf anhieb. Vermutlich hatte ich irgendeine Einstellung versehentlich vorgenommen die solche Probleme führte.


Dir noch eine schöne Zeit und frohe Ostern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 Uhr.

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