Webserver nginx als Proxy für http und https

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
s837ubc
Beiträge: 133
Registriert: 23.07.2013 14:17:01

Webserver nginx als Proxy für http und https

Beitrag von s837ubc » 10.01.2019 15:12:24

Hallo, zusammen,

ein "Debian 9" System wird ein Proxy für mehrere Webseiten mit unterschiedlichen Subdomains eingesetzt.

Im Router (FritzBox) sind Portfreigaben für 80 und 443 mit Ziel auf den Proxy eingerichtet worden.

Beim Ausführen des Befehls ...

$ letsencrypt renew

... wird nur ein Zertifikat erfolgreich erneuert. Alle weiteren Zertifikate können nicht aktualisiert werden. Hier meldet letsencrypt stets folgenden Fehler:

Attempting to renew cert (subdomain.domainname) from /etc/letsencrypt/renewal/subdomain.domainname.conf produced an unexpected error: Failed authorization procedure. subdomain.domainname (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching https://subdomain.domainname/.well-know ... 4/404/404/: Timeout during connect (likely firewall problem). Skipping.

Beim Aufruf der fraglichen URL mit http://subdomain.domainname wird via redirect 301 auf https://subdomain.domainname umzuleiten. Hier meldet der Browser zurecht, dass das eingesetzte Zertifikat veraltet ist.

Der gleiche Fehler tritt auch auf, wenn vor der Ausführung des Befehls ...

$ letsencrypt renew

... der Webserver nginx beendet wird. Lediglich die URL ist etwas anders: http://subdomain.domainname/.well-known ... hOySsiRU_c

Kann mir jemand mitteilen, wie die Fehlerursache eingegrenzt werden kann?

s837ubc
Beiträge: 133
Registriert: 23.07.2013 14:17:01

Re: Webserver nginx als Proxy für http und https

Beitrag von s837ubc » 10.01.2019 15:35:01

Hallo,

zwischenzeitlich wurde eine Lösung gefunden:

Wenn der Befehl ...

$ letsencrypt

... ohne Parameter aufgerufen wird, werden alle vorhandene Subdomain Webseiten aufgelistet, für die ein Zertifikat ausgestellt werden kann.

Bei der Auswahl der entsprechenden Subdomain kann auch das vorhandene abgelaufene Zertifikat erfolgreich aktualisiert bzw. neu ausgestellt werden.

Letsencrypt wurde angewiesen, keine Seiten-Config-Dateien im nginx-Webserver anzupassen.

Der Webserver nginx wurde vor der Erneuerung der Zertifikate nicht gestoppt.

Nun muss abgewartet werden, ob eine automatische aktualisierung in etwa 90 Tagen erfolgreich durchlaufen wird.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Webserver nginx als Proxy für http und https

Beitrag von hec_tech » 10.01.2019 17:24:51

Warum willst du überhaupt nginx vor dem erneuern stoppen?

Nginx kann doch einfach die Auth Daten selbst ausliefern.

s837ubc
Beiträge: 133
Registriert: 23.07.2013 14:17:01

Re: Webserver nginx als Proxy für http und https

Beitrag von s837ubc » 14.01.2019 08:31:20

Hallo,

auf einer Webseite wurde erwähnt, dass LetsEncrypt beim Ausstellen unf Erneuern von Zertifikaten selbst die Antworten vom LetsEncrypt-Server auswerten muss. Erst nachdem von Letsencrypt die Antworten "empfangen" worden sind, kann das neue Zertifikat ausgestellt werden. Da nur ein Programm von einen Port "80" Daten empfangen und verarbeiten kann, muss nginx kurz offline genommen werden.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Webserver nginx als Proxy für http und https

Beitrag von hec_tech » 14.01.2019 10:24:41

Du beschreibst hier die Variante mit Downtime.

Du kannst über Webroot von Apache oder Nginx genauso das Renew durchführen.

/etc/letsencrypt/renewal/[DOMAINNAME].conf:

Code: Alles auswählen

# renew_before_expiry = 30 days
version = 0.10.2
archive_dir = /etc/letsencrypt/archive/[DIR]
cert = /etc/letsencrypt/live/[DIR]/cert.pem
privkey = /etc/letsencrypt/live/[DIR]/privkey.pem
chain = /etc/letsencrypt/live/[DIR]/chain.pem
fullchain = /etc/letsencrypt/live/[DIR]/fullchain.pem

# Options used in the renewal process
[renewalparams]
account = [ACCOUNTID]
authenticator = webroot
rsa_key_size = 4096
installer = None
renew_hook = service nginx reload
[[webroot_map]]
[DOMAIN] = /var/www/[DOMAIN]
Einfach die Datei anpassen und den Webroot erstellen.

Danach noch im Nginx folgendes einfügen:

Code: Alles auswählen

        location /.well-known {
                alias /var/www/[DOMAIN]/.well-known;

                }

s837ubc
Beiträge: 133
Registriert: 23.07.2013 14:17:01

Re: Webserver nginx als Proxy für http und https

Beitrag von s837ubc » 21.01.2019 14:23:47

Hallo hec_tec,

vielen Dank für die super Methode.

Die Methode ist natürlich noch viel besser.

Bin heute über die Meldung in der Webseite Golem.de gestollpert:

https://www.golem.de/news/https-let-s-e ... 38843.html

Es geht darin, dass in Debian stretch eine veraltete Methode aktiv ist, um Letsencrypt-Zertifikate erneuern zu können. Das veraltete Verfahren wird demnächst abgeschaltet.

Habe bislang noch keine Info-Email von Letsencrypt erhalten, oder diese ist im Spam-Ordner hängen geblieben.

Mal schauen, ob nach dem 13. Februar ein Fehler beim erneuern des Zertifikats auftritt.

Antworten