Einzelnen Beitrag anzeigen

Hobbycoder

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

AW: HTTPS-Server in eigener Anwendung

  Alt 22. Mai 2017, 10: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