AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi HTTPS-Server in eigener Anwendung
Thema durchsuchen
Ansicht
Themen-Optionen

HTTPS-Server in eigener Anwendung

Ein Thema von Hobbycoder · begonnen am 22. Mai 2017 · letzter Beitrag vom 23. Mai 2017
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
669 Beiträge
 
#1

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 09:16
Hier mal mein Halbwissen dazu: Im Browser oder Betriebssystem sind gültige Zertifizierungsstellen hinterlegt, von denen ausgestellte Zertifikate akzeptiert werden. Von diesen kann man dann ein Zertifikat kaufen, welches direkt als gültig betrachtet wird. Selbst ausgestellten Zertifikaten fehlt diese vertrauenswürdige Zertifizierungsstelle, deshalb wird ihnen misstraut und es kommt ein Fehler. Du kannst dein Zertifikat aber irgendwie manuell im Browser/OS eintragen, damit auch dieses als gültig betrachtet wird.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
933 Beiträge
 
#2

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 09:32
Danke für den Hinweis.

Ich habe das Zertifikat mal importiert und dann mittel mmc in die Vertrauenwürdigen Zertifikate verschoben.
Jetzt Zeit mir der IE schon mal, dass mein Zertifikat gültig ist. Aber ich habe immer noch die URL rot hinterlegt und daneben "Zertifikatfehler" stehen. Um was für einen Fehler es sich handelt, will mir IE nicht preisgeben. Schön wäre es, wenn man es hinbekäme, das dir URL grün wird.

Es wäre ja auch praktisch, wenn man das Clients, ohne gültiges Zertifikat gleich mal anweisen könnte. Also nur die Clients reinlassen, die ihrerseits das Zertifikat bereits vorliegen haben. Spannende Frage: Kann man das mit Indy machen?
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
933 Beiträge
 
#3

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 09:43
Auch bekomme ich dann im Programm immer eine Exception (s.Bild im Anhang) EIdOSSLAcceptError, dessen Ursache ich mir nicht erklären kann. Das kann, muss aber nicht, damit in Verbindung stehen.
Angehängte Grafiken
Dateityp: png 2017-05-22 10_40_17-Benachrichtigung über Debugger-Exception.png (60,4 KB, 23x aufgerufen)
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock
Online

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.765 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 09:45
Der Zertifikatsfehler dürfte weiterhin auf die selbstgemachte Herkunft hinweisen.

Noch eine Portion Halbwissen von mir: Wenn Du das Ding wirklich ins Internet stellst, darfst Du Dich eine völlig neue Dimension des Schmerzes freuen.

Ich hoffe sehr, daß Du regelmäßig und vollständig Backups von all Deinen Rechnern ziehst.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
933 Beiträge
 
#5

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 09:56
Noch eine Portion Halbwissen von mir: Wenn Du das Ding wirklich ins Internet stellst, darfst Du Dich eine völlig neue Dimension des Schmerzes freuen.
Ich hoffe sehr, daß Du regelmäßig und vollständig Backups von all Deinen Rechnern ziehst.
Warum? Der HTTP-Server verfügt über keinerlei Möglichkeiten Daten oder Steuerungsbefehle entgegen zu nehmen. Er liefert lediglich über OnCommand im Programm statisch erzeugte, minmalistische Webseiten, die Information über bestimmte Zustände bzw. eine JPG-Grafik liefert. In wie weit sollte das dann einen neue Dimension des Schmerzes erzeugen? Ich will ja keinen richtigen Web-Server bauen.


Und zurück zum Thema:
Hier mal etwas von dem Source, vielleicht habe ich da ja schon einen eklatanten Fehler drin:
Delphi-Quellcode:
  FIdServerIOHandlerSSLOpenSLL:=TIdServerIOHandlerSSLOpenSSL.Create(nil);
  FIdServerIOHandlerSSLOpenSLL.OnGetPassword:=IdSSLIOHandlerSocketOpenSSL1GetPassword;
  FIdServerIOHandlerSSLOpenSLL.SSLOptions.Method:=sslvSSLv23;
  FIdServerIOHandlerSSLOpenSLL.SSLOptions.Mode:=sslmServer;
  FIdServerIOHandlerSSLOpenSLL.SSLOptions.CertFile:=ExtractFilePath(Self.FPicdefFilename)+'testzertifikat.crt';
  FIdServerIOHandlerSSLOpenSLL.SSLOptions.KeyFile:=ExtractFilePath(Self.FPicdefFilename)+'testzertifikat.key';
  FIdServerIOHandlerSSLOpenSLL.SSLOptions.RootCertFile:=ExtractFilePath(Self.FPicdefFilename)+'testzertifikat.pem';

  // FIdServerIOHandlerSSLOpenSLL.SSLOptions.VerifyDepth := 1;
  // FIdServerIOHandlerSSLOpenSLL.SSLOptions.VerifyMode := [sslvrfPeer,sslvrfFailIfNoPeerCert,sslvrfClientOnce];

  FHTTP:=TIdHTTPServer.Create(nil);
  FHTTP.IOHandler:=FIdServerIOHandlerSSLOpenSLL;
  FHTTP.AutoStartSession:=True;
  FHTTP.SessionState:=True;
  FHTTP.ParseParams:=True;
  FHTTP.Bindings.Clear;
  for i:=0 to FIPs.Count-1 do
  begin
    if (Self.FPort>0) then
    begin
      with FHTTP.Bindings.Add do
      begin
        IP:=FIPs[i];
        Port:=Self.FPort;
      end;
    end;
    if (self.FSSLPort>0) then
    begin
      with FHTTP.Bindings.Add do
      begin
        IP:=FIPs[i];
        Port:=FSSLPort;
      end;
    end;
  end;
  FHTTP.OnCommandGet:=OnCommandGet;
  try
    DoOnHTTPStart;
    FHTTP.Active:=True;
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#6

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 10:13
Danke für den Hinweis.

Ich habe das Zertifikat mal importiert und dann mittel mmc in die Vertrauenwürdigen Zertifikate verschoben.
Jetzt Zeit mir der IE schon mal, dass mein Zertifikat gültig ist. Aber ich habe immer noch die URL rot hinterlegt und daneben "Zertifikatfehler" stehen. Um was für einen Fehler es sich handelt, will mir IE nicht preisgeben. Schön wäre es, wenn man es hinbekäme, das dir URL grün wird.
Falls IE da nichts preisgibt, würde ich einen anderen (z.B. den Chrome Browser) verwenden, und schauen ob er eine detailliertere Fehlermeldung ausgibt.

Sehr praktisch ist auch der Test unter https://www.ssllabs.com/ssltest/analyze.html, da werden für deinen Server gleich auch entdeckte Sicherheitslücken angezeigt. Voraussetzung ist dafür allerdings, dass der Server im Internet erreichbar ist.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
669 Beiträge
 
#7

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 10:26
Was für eine Verschlüsselung/Verfahren verwendest du denn? Da wird nicht mehr alles als sicher betrachtet.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
933 Beiträge
 
#8

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 10:33
Danke, das werde ich mal ausprobieren.

Leider hakt es noch an anderen Stellen. Ich bekomme auch oft die Meldung "EIdOSSLUnderlyingCryptoError", wenn ich auf einen Linke klicke, der auch auf meinem int. HTTP-Server zeigt. Dann springt er mich noch nicht mal mehr in die OnCommandGet-Routine. Erklären kann ich es mir zur Zeit noch nicht.
Leider finde ich auch nicht wirklich mal richtig schöne Demos bzw. Tutorials zu Indy-SSL-HTTP-Server.
Angehängte Grafiken
Dateityp: png 2017-05-22 11_29_42-Benachrichtigung über Debugger-Exception.png (64,1 KB, 5x aufgerufen)
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#9

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 11:20
Ich bekomme auch oft die Meldung "EIdOSSLUnderlyingCryptoError", wenn ich auf einen Linke klicke, der auch auf meinem int. HTTP-Server zeigt. ... Leider finde ich auch nicht wirklich mal richtig schöne Demos bzw. Tutorials zu Indy-SSL-HTTP-Server.
Indy ist die aktuelle Version mit den neuesten OpenSSL DLLs? (z.B. von https://indy.fulgan.com/)? Sind andere (veraltete) OpenSSL DLLs im "Suchpfad"?

Schöne Demos und Tutorials müssten geschrieben werden
Michael Justin
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
933 Beiträge
 
#10

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 11:41
ja, alles vorhanden.

Ich denke ich habe den Fehler EIdHTTPProtokolException auch gefunden. Ich hatte teilweise noch in der zurück gelieferten Webseite noch Hard-Coded-Links "http://xxx.xxx.xxx.xxx/..." drin stehen. Hab das jetzt mal gegen relative Links getauscht, dann tritt der Fehler so jedenfalls nicht mehr auf.

Ich hab auch mal das ganze mit der Seite www.ssllabs.com getestet. Aus allem was das steht werde ich nicht schlau ist ja ne ganze Menge.
Und das das Zertifikat grundsätzlich ungültig wäre, hat er auch nicht gesagt. Allerdings meckert er den "common Name" als Mismatch an. Da habe ich einfach mal meinen Realnamen verwendet. Auch bei trusted steht "Not Trusted" was aber klar ist.

Ich hänge mal Bilder von dem Bericht an. Falls jemand draufschauen mag.

Wenn's mal richtig läuft, mach ich daraus vielleicht ein Tutorial (zumindest aber stell ich mal den Source hier irgend ein, damit sich andere daraus was abschauen können).
Angehängte Grafiken
Dateityp: jpg SSLReport1.jpg (76,3 KB, 20x aufgerufen)
Dateityp: jpg SSLReport2.jpg (82,4 KB, 18x aufgerufen)
Dateityp: jpg SSLReport3.jpg (80,6 KB, 12x aufgerufen)
Dateityp: jpg SSLReport4.jpg (87,6 KB, 13x aufgerufen)
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:11 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