HTTPS für Subdomain?
-
- Beiträge: 734
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
HTTPS für Subdomain?
Ich weiß, dass es nicht mit Lazarus zu tun hat, aber da hier viele Experten gibt, hoffe ich, dass jemand eine Antwort darauf hat.
Die Firma hat ein Internetseite bei Strato, dass Zertifikat hat und man kann die Seite über https-Protokoll erreichen, Zertifikat liegt im unsichtbaren Bereich, der von Strato verwaltet wird. Dann habe ich auf diese Seite Subdomain, welche per Dyndns auf den lokalen Server-PC umgeleitet wird auf dem Freepascalserver läuft, dass ich programmiert habe.
Ich habe versucht mit letsencrypt ein Zertifikat für Subdomain zu erstellen, es ging nicht, den Grund vergessen, lange her, wahrscheinlich weil Hauptdomain schon ein Zertifikat hat.
Wir haben auch eine ungenutzte Hauptdomain, das könnte ich auch an den lokalen PC umleiten.
Die Datenbank und der Server sollen lokal bleiben, das ist die Voraussetzung.
Weiß jemand wie ich dieses Problem einfach lösen kann?
Die Firma hat ein Internetseite bei Strato, dass Zertifikat hat und man kann die Seite über https-Protokoll erreichen, Zertifikat liegt im unsichtbaren Bereich, der von Strato verwaltet wird. Dann habe ich auf diese Seite Subdomain, welche per Dyndns auf den lokalen Server-PC umgeleitet wird auf dem Freepascalserver läuft, dass ich programmiert habe.
Ich habe versucht mit letsencrypt ein Zertifikat für Subdomain zu erstellen, es ging nicht, den Grund vergessen, lange her, wahrscheinlich weil Hauptdomain schon ein Zertifikat hat.
Wir haben auch eine ungenutzte Hauptdomain, das könnte ich auch an den lokalen PC umleiten.
Die Datenbank und der Server sollen lokal bleiben, das ist die Voraussetzung.
Weiß jemand wie ich dieses Problem einfach lösen kann?
Re: HTTPS für Subdomain?
Anweisungen, wenn das Betriebssystem auf dem Server (auf dem der http-fpc-Server läuft) Windows ist:
1. Laden Sie das Programm „win-acme“ herunter und entpacken Sie es: https://www.win-acme.com/
2. Öffnen Sie den Port 80 in der Firewall und führen Sie „win-acme“ mit den folgenden Parametern aus:
Natürlich geben wir die korrekten Daten mit Email-Adresse, Website-Adresse und Verzeichnis ein
3. in „FpHTTPServer“ aktivieren wir „SSL“ und geben die Speicherorte der Zertifikatsdateien an:
Im Moment können Sie kein Passwort für Zertifikate verwenden, da „FpHttpSever“ dies noch nicht kann: https://gitlab.com/freepascal.org/fpc/s ... sues/40468
Wir aktualisieren das Let's Encrypt Zertifikat nach 3 Monaten.
1. Laden Sie das Programm „win-acme“ herunter und entpacken Sie es: https://www.win-acme.com/
2. Öffnen Sie den Port 80 in der Firewall und führen Sie „win-acme“ mit den folgenden Parametern aus:
Code: Alles auswählen
wacs.exe --source manual --host my.domain.pl --validation selfhosting --webroot C:\fphttpserver_dir --store pemfiles --pemfilespath C:\fphttpserver_dir --emailaddress email@domain.pl --accepttos
3. in „FpHTTPServer“ aktivieren wir „SSL“ und geben die Speicherorte der Zertifikatsdateien an:
Code: Alles auswählen
Serv := THTTPServer.Create(nil);
Serv.Threaded := True;
Serv.Port := 443;
Serv.UseSSL := True;
Serv.CertificateData.HostName := 'my.domain.pl';
Serv.CertificateData.Certificate.FileName := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'my.domain.pl-crt.pem';
Serv.CertificateData.PrivateKey.FileName := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'my.domain.pl-key.pem';
Wir aktualisieren das Let's Encrypt Zertifikat nach 3 Monaten.
Grüße / Pozdrawiam
paweld
paweld
-
- Beiträge: 734
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: HTTPS für Subdomain?
Danke Paweld, es hat aber nicht funktioniert. Die Ports 80, 443 sind offen, es sind von Internet erreichbar. wacs.exe hat auch Freigabe von Windows-Firewall.
Das ist die Fehlermeldung:
Als Bild:
Das ist die Fehlermeldung:
Code: Alles auswählen
...
[my.domain.xyz] Authorization result: invalid
[my.domain.xyz] {"type":"urn:ietf:params:acme:error:connection","detail":"79.xyz.xyz.xyz: Fetching http://my.domain.xyz/.well-known/acme-challenge/8xxcensoredxxM: Timeout during connect (likely firewall problem)","status":400,"instance":null}
[my.domain.xyz] Deactivating pending authorization
Create certificate failed
..
Re: HTTPS für Subdomain?
Tut mir leid, aber ich habe nicht genug erklärt.
Das von mir angeführte Beispiel veranlasst „WACS“, die Validierung mit seinem HTTP-Server durchzuführen, der für die Dauer der Validierung auf Port 80 läuft - während dieser Zeit kann kein anderer Dienst (außer IIS) auf Port 80 laufen, da die Validierung fehlschlägt - der Verifizierungslink wird von einem anderen Webserver abgefangen. Bei der „self-hosting“-Validierung müssen Sie also Ihren Webserver für die Dauer der Zertifikatserstellung anhalten.
Die Verifizierung kann auch über das „filesystem“ erfolgen, d. h. mit einem bereits laufenden Webserver, der jedoch auf Aufrufe reagieren muss, die „.well-known/acme-challenge“ in der URL enthalten, d. h. den Inhalt der Datei im angegebenen Pfad zurückgeben. Rufen Sie dann win-acme mit den folgenden Parametern auf:
Der obige Befehl erstellt ein Unterverzeichnis „\well-known/acme-challenge“ im Verzeichnis „C:\fphttpserver_dir“ und darin die Verifikationsdatei.
Das von mir angeführte Beispiel veranlasst „WACS“, die Validierung mit seinem HTTP-Server durchzuführen, der für die Dauer der Validierung auf Port 80 läuft - während dieser Zeit kann kein anderer Dienst (außer IIS) auf Port 80 laufen, da die Validierung fehlschlägt - der Verifizierungslink wird von einem anderen Webserver abgefangen. Bei der „self-hosting“-Validierung müssen Sie also Ihren Webserver für die Dauer der Zertifikatserstellung anhalten.
Die Verifizierung kann auch über das „filesystem“ erfolgen, d. h. mit einem bereits laufenden Webserver, der jedoch auf Aufrufe reagieren muss, die „.well-known/acme-challenge“ in der URL enthalten, d. h. den Inhalt der Datei im angegebenen Pfad zurückgeben. Rufen Sie dann win-acme mit den folgenden Parametern auf:
Code: Alles auswählen
wacs.exe --source manual --host my.domain.pl --validation filesystem --webroot C:\fphttpserver_dir --store pemfiles --pemfilespath C:\fphttpserver_dir --emailaddress email@domain.pl --accepttos
Grüße / Pozdrawiam
paweld
paweld
-
- Beiträge: 734
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: HTTPS für Subdomain?
Paweld, ich hatte davor schon alle Programme die Ports 80,443 benutzen beendet.
Ich habe im Internet nachgeschaut, ähnliches Problem mit wacs soll verbreitet sein. Es war nur zum Testen, Ich verwende jetzt selbst signierte Zertifikate.
Danke für deine Hilfe.
Ich habe im Internet nachgeschaut, ähnliches Problem mit wacs soll verbreitet sein. Es war nur zum Testen, Ich verwende jetzt selbst signierte Zertifikate.
Danke für deine Hilfe.
Re: HTTPS für Subdomain?
Haben Sie in Ihrer Systemfirewall eine Ausnahme für Port 80 oder für ein Programm hinzugefügt? Wenn es sich um ein Programm handelt, müssen Sie zum Port wechseln oder ein neues Programm hinzufügen: win-acme.exe.
Alternativ können Sie die „filesystem“-Prüfung verwenden und in Ihrer Webserver-Anwendung die Let's Encrypt-Prüfung durchführen.
Edit: Im Anhang finden Sie die Server-Quellen, die die Validierung korrekt durchführen sollten. Das heißt, Sie kompilieren und starten den Server (vom Speicherort „C:\phttpserver_dir“) und führen „win-acme“ mit den folgenden Parametern aus:
Alternativ können Sie die „filesystem“-Prüfung verwenden und in Ihrer Webserver-Anwendung die Let's Encrypt-Prüfung durchführen.
Edit: Im Anhang finden Sie die Server-Quellen, die die Validierung korrekt durchführen sollten. Das heißt, Sie kompilieren und starten den Server (vom Speicherort „C:\phttpserver_dir“) und führen „win-acme“ mit den folgenden Parametern aus:
Code: Alles auswählen
wacs.exe --source manual --host my.domain.pl --validation filesystem --webroot C:\fphttpserver_dir --store pemfiles --pemfilespath C:\fphttpserver_dir --emailaddress email@domain.pl --accepttos
- Dateianhänge
-
Project1.zip
- (2.6 KiB) 58-mal heruntergeladen
Grüße / Pozdrawiam
paweld
paweld
Re: HTTPS für Subdomain?
Einfach einen reverse Proxi vornan?
ich nutze den nginx , sonst ist auch nichts erreichbar.
Inet
---
nginx Reverse Proxy
---
mehrere Container, Server, usw. im LAN die anhand der Subdomain angesprochen werden.
gibt es tonnenweiße Tutorials dazu.
ich nutze den nginx , sonst ist auch nichts erreichbar.
Inet
---
nginx Reverse Proxy
---
mehrere Container, Server, usw. im LAN die anhand der Subdomain angesprochen werden.
gibt es tonnenweiße Tutorials dazu.
-
- Beiträge: 734
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: HTTPS für Subdomain?
@paweld, ich hatte schon alles gemacht, was du empfiehlst mit dem Firewall und so, es ging trotzdem nicht. Mit dem zweiten Weg "--validation filesystem" ging es. Ich habe dein Programm im Server Ordner gestartet und vóila, es ging sofort. Vielen Dank dafür, jetzt muss ich es in 90 Tagen erneuern. Vielleicht sollten wir das in Lazarus-Wiki hinzufügen.
@schoschy, mein Server liegt auch hinter nginx, dank Pawelds Hilfe hat jetzt sowohl nginx als auch mein Fpserver HTTPS.
@schoschy, mein Server liegt auch hinter nginx, dank Pawelds Hilfe hat jetzt sowohl nginx als auch mein Fpserver HTTPS.
Re: HTTPS für Subdomain?
@Soner: In Ihrer Anwendung können Sie „win-acme.exe“ alle 3 Monate z.B. mit TProcess aufrufen und das Problem der Erneuerung ist gelöst.
Grüße / Pozdrawiam
paweld
paweld