Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von Mario885 » 15.10.2018 09:34:50

Moin.

Habe da ein kleines Problemchen (vermutlich etwas "selbstgemacht").

Ich habe einen kelinen Webserver, mit mailserver und OwnCloud.
Läuft aktuell alles soweit erste Sahne.
Jedoch habe ich nun eine zusätzliche Domain gekauft und wollte diese zum Zertifikat mit hinzufügen.
Dies ist jedoch erstmal fehlgeschlagen, konnte es aber mit einer kompletten Neuanforderung des Zertifikates lösen. Funktioniert nun und habe bis Januar Zeit. Das Problem, was jedoch beim "normalen" renew kommt, besteht immer noch.
Fehlermeldung (Domains abgeändert):
Attempting to renew cert from /etc/letsencrypt/renewal/mail.mydomain.de.conf produced an unexpected error: Failed authorization procedure. mail.mydomain.de (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://mail.mydomain.de/.well-known/acm ... uQ5HwQvtp8: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p", cloud.mydomain.de (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://cloud.mydomain.de/.well-known/ac ... 4JogY-saKw: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p". Skipping.
Meine deswegen, vermutlich selbst gemacht, da es mich genervt hat, wenn ich den Webmailer oder die Owncloud aufrufen will, ich jedes Mal zusätzlich "/mail" oder "/owncloud" eingeben musste, weshalb ich 2 vHost unter "/sites-avaiable" und die entsprechenden Links unter "/sites-enabled" angelegt habe.
Wie kann ich das aber nun geschickt lösen, ohne auf https für die beiden Subdomains zu verzichten.
Mailserver ist iRedMail (hat wohl ein anderes Root, als die eigentliche Homepage unter /var/www/html) und OwnCloud (natürlich außer die Data) liegt unter /var/ww/html/owncloud.

Jemand ne Idee, wie ich das lösen kann, möglichst außer die 2 vHosts wieder zu deaktivieren. Würde das gern so belassen.

Inhalt der vHosts (hier Beispiel der mail.conf):
<VirtualHost *:80>
ServerName mail.mydomain.de
RedirectPermanent / https://mail.mydomain.de/mail/
DocumentRoot /var/www/html
</VirtualHost>
Für "cloud.mydomain.de" ähnlich, halt nur .../owncloud/

Danke im Voraus.

Gruß

PS: Tippfehler sind Absicht und dienen der allgemeinen Erheiterung.
:D

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von Lord_Carlos » 15.10.2018 10:38:03

Bei Letsencrypt kannst du pre und post Kommandos angeben.
Ich wuerde einfach Apache stoppen, Zertifikat erneuert und Apache wieder starten.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von Mario885 » 15.10.2018 12:43:00

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
15.10.2018 10:38:03
Bei Letsencrypt kannst du pre und post Kommandos angeben.
Ich wuerde einfach Apache stoppen, Zertifikat erneuert und Apache wieder starten.
Und das funktioniert dann und führt nicht zu dem Fehler oder wie? :roll:

DeletedUserReAsG

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von DeletedUserReAsG » 15.10.2018 12:55:34

Richtig. Weil certbot (wenn das verwendet wird) sich selbst um den http-Kram kümmert.

reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von reox » 15.10.2018 14:44:28

Also für mich schaut der 404 so aus, als würde der webserver das .well-known verzeichnis nicht korrekt weiterleiten und den ordner nehmen, der von certbot mit den daten befüllt wird.
Wie hast du denn am apache das .well-known verzeichnis konfiguriert?

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von Lord_Carlos » 15.10.2018 15:06:17

Mario885 hat geschrieben: ↑ zum Beitrag ↑
15.10.2018 12:43:00
Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
15.10.2018 10:38:03
Bei Letsencrypt kannst du pre und post Kommandos angeben.
Ich wuerde einfach Apache stoppen, Zertifikat erneuert und Apache wieder starten.
Und das funktioniert dann und führt nicht zu dem Fehler oder wie? :roll:
So funktioniert es bei mir.
Wenn du willst kann ich spaeter mal nachgucken wie das Kommando genau aussieht. pre-hook und post-hook sollten die Stichwoerter sein.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von Lord_Carlos » 15.10.2018 17:02:35

In /etc/letsencrypt/renewal-hooks/pre/pre-script.sh habe ich:

Code: Alles auswählen

#!/bin/sh

set -e

systemctl stop nginx.service
Aenliches dann in post.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

DeletedUserReAsG

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von DeletedUserReAsG » 15.10.2018 17:22:01

reox hat geschrieben: ↑ zum Beitrag ↑
15.10.2018 14:44:28
Wie hast du denn am apache das .well-known verzeichnis konfiguriert?
Falls ich gemeint war: gar nicht. Ich stoppe den Apachen, schubse certbot an, und starte den Apachen im Anschluss neu. Kann man dann auch noch automatisieren, wenn man mag. Hat den Vorteil, dass man eben keine Software in Apaches Configs rumpfuschen lassen muss, und man da auch selbst nix rumzufuhrwerken braucht. Nachteil ist halt eine Minute Downtime des betreffenden httpd (wenn man’s automatisiert, kommt man vielleicht auch mit 20-30s hin).

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von heisenberg » 15.10.2018 17:36:07

niemand hat geschrieben: ↑ zum Beitrag ↑
15.10.2018 17:22:01
Falls ich gemeint war: gar nicht. Ich stoppe den Apachen, schubse certbot an, und starte den Apachen im Anschluss neu.
Also mal so prinzipiell braucht man den Apachen doch nicht zu stoppen für den Certbot(Es sei denn, man möchte den Apachen nicht für die Annahme des Requests benutzen. Ich gehe mal davon aus, dass Du das deswegen so tust.).

Dort, wo ich certbot einsetze, habe ich diesen Config-Schnipsel in /etc/apache2/conf-available/certbot.conf rumliegen(und mit a2enconf cerbot aktiviert):

Code: Alles auswählen

<IfModule mod_headers.c>
  Alias "/.well-known/acme-challenge/" "/var/www/acme-challenge/.well-known/acme-challenge/"
  <IfModule mod_proxy.c>
    # Globale Proxy-Ausnahme für das acme-challenge-Verzeichnis
    ProxyPass  "/.well-known/acme-challenge/" !
  </IfModule>
  <Directory "/var/www/acme-challenge/">
    AllowOverride None
    Options FollowSymLinks
  </Directory>
</IfModule>
Dann läuft bei mir normal per cron der certbot und 1x in der Woche nachts ein Apache restart.
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

DeletedUserReAsG

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von DeletedUserReAsG » 15.10.2018 17:42:27

heisenberg hat geschrieben: ↑ zum Beitrag ↑
15.10.2018 17:36:07
Also mal so prinzipiell braucht man den Apachen doch nicht zu stoppen für den Certbot(Es sei denn, man möchte den Apachen nicht für die Annahme des Requests benutzen. Ich gehe mal davon aus, dass Du das deswegen so tust.).
Richtig, ich möchte den Apachen selbst nicht dafür benutzen. Zumal bei mir auch einige Domains/Subdomains Zertifikate erhalten, mit denen der httpd gar nix zu tun hat. Gründe habe ich angeführt: keine Notwendigkeit, sich um die entsprechende Config zu kümmern, oder gar Software in der Config rumschreiben zu lassen.

reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von reox » 15.10.2018 21:10:48

Achso, ok ich verwende nginx und habe einfach ein snippet welches http auf https umleitet und auch gleich den .well-known path setzt. Das wird einfach für jede Seite mit https inkludiert. Kein Grund certbot irgendwas an der config ändern zu lassen...
Dann ist aber weiterhin die Frage ob der 404 von Certbot kommt oder vom apache.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von Mario885 » 15.10.2018 22:13:14

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
15.10.2018 15:06:17
Mario885 hat geschrieben: ↑ zum Beitrag ↑
15.10.2018 12:43:00
Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
15.10.2018 10:38:03
Bei Letsencrypt kannst du pre und post Kommandos angeben.
Ich wuerde einfach Apache stoppen, Zertifikat erneuert und Apache wieder starten.
Und das funktioniert dann und führt nicht zu dem Fehler oder wie? :roll:
So funktioniert es bei mir.
Wenn du willst kann ich spaeter mal nachgucken wie das Kommando genau aussieht. pre-hook und post-hook sollten die Stichwoerter sein.
Wäre super. Habe da aber auch schon geschaut. Könnte ja dann quasi ein Skript erstellen, welches den Apache vorher stoppt, den renew ausführt und dann wieder startet oder alternativ mit pre- und post-hook oder? Super wäre auch, wenn du mir ggf. den "auszug" aus deiner cron posten könntest.

Merci im Voraus.

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von Mario885 » 15.10.2018 22:17:22

Hm.

Den apache2 vorher stoppen und dann certbot renew bringt mir nichts....

Läuft trotzdem in den Error bezüglich der 2 Sub-Domains.
Attempting to renew cert from /etc/letsencrypt/renewal/mail.mydomain.de.conf produced an unexpected error: Failed authorization procedure. cloud.mydomain.de (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://cloud.mydomain.de/.well-known/ac ... FcwRjxMbXM: Connection refused, mail.mydomain.de (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://mail.mydomain.de/.well-known/acm ... R37uxM8E6U: Connection refused. Skipping.
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)

All renewal attempts failed. The following certs could not be renewed:
/etc/letsencrypt/live/mail.mydomain.de/fullchain.pem (failure)
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates above have not been saved.)
1 renew failure(s), 0 parse failure(s)

IMPORTANT NOTES:
- The following errors were reported by the server:

Domain: cloud.mydomain.de
Type: connection
Detail: Fetching
http://cloud.mydomain.de/.well-known/ac ... FcwRjxMbXM:
Connection refused

Domain: mail.mydomain.de
Type: connection
Detail: Fetching
http://mail.mydomain.de/.well-known/acm ... R37uxM8E6U:
Connection refused

To fix these errors, please make sure that your domain name was
entered correctly and the DNS A record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you're using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided.
Noch jemand ne Idee?

Mario885
Beiträge: 39
Registriert: 03.10.2018 22:47:39

Re: Problem mit Letsencrypt Zertifikat auf Debian 9 Server mit Apache2

Beitrag von Mario885 » 15.10.2018 22:37:36

Ok.

Habe soeben selbst eine Lösung bzw. einen Workarround gefunden:

Man muss dann einfach die vHosts unter sites-enabled kurzzeitig entschäfen und den Apache-Neustarten.
Dann certbot renew ausführen lassen.
Anschließend die VHost wieder "scharf" schalten und nochmal apache2 restart.

Mein Script schaut so aus:
#!/bin/bash
#


# Befehl
cp /etc/apache2/sites-enabled/mail.conf /etc/apache2/sites-enabled/mail.conf.bak
cp /etc/apache2/sites-enabled/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf.bak
systemctl restart apache2
certbot renew >> /var/log/le-renew.log
cp /etc/apache2/sites-enabled/mail.conf.bak /etc/apache2/sites-enabled/mail.conf
cp /etc/apache2/sites-enabled/owncloud.conf.bak /etc/apache2/sites-enabled/owncloud.conf
systemctl restart apache2
exit 0
Test mit "env -i /home/certbot_renew/certbot_script.sh --> ergibt im Log:
2018-10-15 20:28:38,735:DEBUG:certbot.main:Root logging level set at 20
2018-10-15 20:28:38,736:INFO:certbot.main:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2018-10-15 20:28:38,759:DEBUG:certbot.main:certbot version: 0.10.2
2018-10-15 20:28:38,759:DEBUG:certbot.main:Arguments: []
2018-10-15 20:28:38,760:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#webroot,PluginEntryPoint#null,PluginEntryPoint#manual,PluginEntryPoint#standalone)
2018-10-15 20:28:38,776:INFO:certbot.renewal:Cert not yet due for renewal
2018-10-15 20:28:38,777:DEBUG:certbot.renewal:no renewal failures
Da ich erst kürzlich erneuert habe, sollte das passen.
Hab auch mal zum Test im Skript noch "--dry-run" ergänzt und laufen lassen --> auch ohne Fehler.
Passt so wohl also.
Also wer es auch braucht.... Das wäre wohl die lösung oder zumindest n simpler Workarround. 8)

Grüße.

Antworten