# Letsencrypt Haken verschwindet nach speichern



## mrairbrush (25. Okt. 2017)

Hallo,
wenn ich in ISP Config den Haken bei letsencrypt setze ist er nach dem speichern wieder verschwunden.
Habe gerade Update von ISP gemacht und dabei auch ein neues SSL Zertifikat generiert weil es neuerdings Probleme machte.
Muss der Haken drin bleiben? Und wenn ja warum ist er nach dem speichern dann wieder weg?
Bei anderen Domains verschwindet auch der Haken bei SSL nach dem abspeichern.


----------



## Till (25. Okt. 2017)

Zitat von mrairbrush:


> Muss der Haken drin bleiben?


ja



Zitat von mrairbrush:


> Und wenn ja warum ist er nach dem speichern dann wieder weg?


Weil das SSL zertifikat nicht erzegt werden konnte.

Siehe auch:

https://www.howtoforge.com/community/threads/lets-encrypt-error-faq.74179/
https://www.faqforge.com/linux/debugging-ispconfig-3-server-actions-in-case-of-a-failure/


----------



## mrairbrush (25. Okt. 2017)

Skip letsencrypt check gesetzt. Ändert nix.
/var/log/letsencrypt ist nicht vorhanden.
Certificat wird aber in isp erzeugt. Zumindest nach dem Erzeugen angezeigt.

Habe gerade das gefunden.
https://www.howtoforge.de/forum/threads/ispconfig-3-1-und-lets-encrypt.10177/
Sind die Symptome die ich habe. Also muss man unter dem SSL Reiter nicht mehr Zertifikat erstellen und speichern wenn ich das richtig verstehe?


----------



## Till (25. Okt. 2017)

Zitat von mrairbrush:


> /var/log/letsencrypt ist nicht vorhanden.


Hast Du denn überhaupt certbot, das Programm mit dem LE zertifkate erstellt werden, bir Dir installiert?



Zitat von mrairbrush:


> Certificat wird aber in isp erzeugt. Zumindest nach dem Erzeugen angezeigt.


LE Zertifikate werden nie in ISPConfig angezeigt. Wenn Du da ein zertifikat siehst, dann musst Du manuell ein SSL cert erreugt haben und nicht mit LE.


----------



## mrairbrush (25. Okt. 2017)

Wird certbot nicht mit isp 3.1 installiert wenn es für letsencrypt benötigt wird? Also denke ich das es fehlt.


----------



## Till (25. Okt. 2017)

Nein, ISPConfig installiert keine Linux Systempakete selbst.


----------



## mrairbrush (25. Okt. 2017)

ISP nicht aber über die Anleitung. Das heißt also das zwar letsencrypt installiert wird aber das nötige cerbot in der Anleitung fehlt?
Dann muss ich wohl suchen...


----------



## Till (25. Okt. 2017)

Certbot ist der letsencrypt client, wenn Du ISPConfig mit letsencrypt nach Anleitung installiert hast, dann ist es installiert. Ich hatte Dir oben ja bereits gepostet wie Du rausfinden kannst, woran das problem auf Deinem server liegt.


----------



## mrairbrush (25. Okt. 2017)

Habe nach Anleitung installiert. Aber anscheinend fehlt es dennoch.
Nach dem Update habe ich auch die services reconfigurieren lassen wie es in der ersten Beschreibung steht.


----------



## Till (25. Okt. 2017)

Zitat von mrairbrush:


> Habe nach Anleitung installiert. Aber anscheinend fehlt es dennoch.


Unwahrscheinlich, wenn Du das Paket installiert hast dann ist der Befehl 'letsencrypt' oder dalternativ die neue Version davon 'certbot' auf dem System, aber Du hast ja oben die Links wie Du die Ursache für Dein Problem leicht rausfinden kannst, einfachd ebug einschalten, dann siehst Du wo das problem ist.



Zitat von mrairbrush:


> Allerdings habe ich durch sucherei und update von ISP das Problem das alle eingetragenen Domains auf einer einzigen landen.


Hast Du vielleicht * und IP in den websites gemischt? Entweder alle sites auf * oder alle auf die IP aber niemals mischen.


----------



## mrairbrush (25. Okt. 2017)

Ersten Link habe ich durch. Ohne Erfolg.
Beim zweiten ist mir nicht klar in welchem log ich nachsehen soll.
Kann man das nicht eben frisch installieren?


----------



## Till (25. Okt. 2017)

Zitat von mrairbrush:


> Beim zweiten ist mir nicht klar in welchem log ich nachsehen soll.


Du sollst in keinem Log nachsehen sondern die dort beschrieben Schritte auf Deiem server durchführen, dann erhältst Du die Ausgabe auf der shell.

1) Log level auf debug stellen.
2) Cronjob auskommentieren.
3) Das machen, was Du debuggen willst. Also in Deinem Fall den Haken bei LE in einer website setzen.
4) das server.sh script auf der shell aufrufen und die Ausgabe hier posten (falls Du nicht selbst in der Ausgabe siehst, wo das problem liegt).



Zitat von mrairbrush:


> Kann man das nicht eben frisch installieren?


Du weißt ja noch nichtmal ob es daran überhaut liegt. Es gibt viele Gründe warum apache ein Konfiguration nicht akzeptiert oder warum LE nicht in der Lage ist ein Certifikat zu erstellen.


----------



## mrairbrush (25. Okt. 2017)

sh: chattr: command not found
sh: chattr: command not found
sh: chattr: command not found
finished.


----------



## Till (25. Okt. 2017)

Du hast den Log Level nicht auf debug gestellt.


----------



## mrairbrush (29. Okt. 2017)

Wo soll ich den auf Debug stellen?
bei crontab -e kann ich weder was eingeben noch komme ich da wieder raus. Editor reagiert nicht.


----------



## Till (29. Okt. 2017)

Seht doch in der Anleitung die ich gepostet habe:



> Login to the ISPConfig intterface and set the log level to Debug under System > System > Server Config (see also chapter 4.9.2.2 of the ISPConfig 3 manual) for the affected server.


----------



## mrairbrush (5. Nov. 2017)

Anleitung habe ich. 
Habe das mal auf debug gestellt. War nix eingetragen.  
Steht aber nix drin wo man das log findet.


----------



## Till (5. Nov. 2017)

Du brauchst ja auch kein log dabei denn die Debug Ausgabe erhältst Du direkt auf der Shell beim Ausführen von server.sh.


----------



## mrairbrush (5. Nov. 2017)

Da bekomme ich lediglich ein finished


----------



## Till (5. Nov. 2017)

Dann hast Du den Loglevel nicht auf debug gesetzt.


----------



## mrairbrush (5. Nov. 2017)

Habe Überwachung / Systemprotokoll anzeigen /ISP Config Protokoll auf debug  gestellt. So verstehe ich das in der Anleitung unter 4.9.2.2 Seite 277.


----------



## Till (6. Nov. 2017)

Das ist richtig.Es gibt da aber 2 einstellungen, eine für das Log und die andere für warnungen per email, prüft das nochmal. Da muss mehr in der ausgabe stehen wenn Du es aktiviert hast und falls dies ein Multiserver setup ist dann muss dies für den slave server aktiviert werden auf dem das SSL cert erstellt werden soll.


----------



## mrairbrush (7. Nov. 2017)

Kann da nur Server - Protokoll - Nachricht auswählen.
Unter Protokoll Debug,Warning,Error wählen.
Nachricht ist nur ein Textfeld.

Einen Speicherbutton für die Einstellung gibt es nicht. Hatte was ins Textfeld eingetragen und jetzt steht es auch nach dem löschen immer noch drin


----------



## Till (7. Nov. 2017)

Also, das Formular sieht so aus wie im Anhang, es handelt sich um ein select Feld und nicht Textfeld, dort kannst Du zwiischen 3 werten wäheln, der richtige Wert ist "Debug", diesen wählst Du aus, dann scrollst Du runter und am Ende der Seite klicks Du auf den Button 'Speichern'.


----------



## BoKo (10. Nov. 2017)

Hallo Till,
ich habe genau das gleiche Problem wie hier beschreiben, der LE Haken geht nach dem speichern immer wieder raus, jedoch wird das Zertifikat erfolgreich erzeugt und die Webseite ist mit dem LE Zertifikat erreichbar, jedoch wenn man was anderes ändert und speichert funktioniert LE nicht mehr.
Ich habe die beschriebenen Schritte hier durchgeführt, im Debug Log auf der Kommandozeile bekomme ich den Fehler:


> You are running with an old copy of letsencrypt-auto that does not receive updates, and is less reliable than more recent versions. We recommend upgrading to the latest certbot-auto script, or using native OS packages


jedoch habe ich die neuste verfügbare Version von Certbot 0.19.0 über die Git Clone Variante installiert
Apache hat Version: 2.4.10-10+deb8u11
Debian Version: 8.9

Hast du eine Idee was ich da machen kann? Das Zertifikat wird ja erfolgreich ausgestellt, nur ISPConfig kommt scheinbar mit der Fehlermeldung durcheinander?

Danke und Gruß
BoKo


----------



## mrairbrush (10. Nov. 2017)

Zitat von Till:


> Also, das Formular sieht so aus wie im Anhang, es handelt sich um ein select Feld und nicht Textfeld, dort kannst Du zwiischen 3 werten wäheln, der richtige Wert ist "Debug", diesen wählst Du aus, dann scrollst Du runter und am Ende der Seite klicks Du auf den Button 'Speichern'.


Diese Ansicht finde ich überhaupt nicht.
Etwas ähnliches finde ich nur unter Überwachung/System Protokoll anzeigen


----------



## Till (11. Nov. 2017)

Zitat von mrairbrush:


> Diese Ansicht finde ich überhaupt nicht.


System > Server config, dort klickst Du auf den server and dann siehst Du genau das was auf meinem screenshot zu sehen ist.


----------



## Till (11. Nov. 2017)

Zitat von BoKo:


> Hast du eine Idee was ich da machen kann? Das Zertifikat wird ja erfolgreich ausgestellt, nur ISPConfig kommt scheinbar mit der Fehlermeldung durcheinander?


Poste den kompletten Debug output den Du auf der shell erhältst. Die von Dir gepostete LE Info hat nichts mit dem Problem zu tun, Du solltst aber natürlich sicherstellen dass wenn Du Certbot auf einem anderen Weg installierst, dass Deine Certbot Installation im selben verzeichnis liegt und dass Du die alte Version entfernst.


----------



## BoKo (11. Nov. 2017)

Anbei das komplette Debug:

```
11.11.2017-12:21 - DEBUG - Calling function 'check_phpini_changes' from plugin 'webserver_plugin' raised by action 'server_plugins_loaded'.
11.11.2017-12:21 - DEBUG - Found 1 changes, starting update process.
11.11.2017-12:21 - DEBUG - Calling function 'ssl' from plugin 'apache2_plugin' raised by event 'web_domain_update'.
11.11.2017-12:21 - DEBUG - Calling function 'update' from plugin 'apache2_plugin' raised by event 'web_domain_update'.
11.11.2017-12:21 - DEBUG - Create Let's Encrypt SSL Cert for: xpms.de
11.11.2017-12:21 - DEBUG - Let's Encrypt SSL Cert domains:  --domains xpms.de --domains www.xpms.de --domains autodiscover.xpms.de
11.11.2017-12:21 - DEBUG - exec: /root/.local/share/letsencrypt/bin/letsencrypt certonly -n --text --agree-tos --expand --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@xpms.de  --domains xpms.de --domains www.xpms.de --domains autodiscover.xpms.de --webroot-path /usr/local/ispconfig/interface/acme
You are running with an old copy of letsencrypt-auto that does not receive updates, and is less reliable than more recent versions. We recommend upgrading to the latest certbot-auto script, or using native OS packages.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Cert not yet due for renewal
Keeping the existing certificate
11.11.2017-12:21 - DEBUG - Let's Encrypt Cert config path is: /etc/letsencrypt/renewal/xpms.de-0001.conf.
11.11.2017-12:21 - DEBUG - Let's Encrypt Cert file: /etc/letsencrypt/live/xpms.de-0001/fullchain.pem exists.
11.11.2017-12:21 - DEBUG - Add server alias: autodiscover.xpms.de
11.11.2017-12:21 - DEBUG - Creating fastcgi starter script: /var/www/php-fcgi-scripts/web62/.php-fcgi-starter
11.11.2017-12:21 - DEBUG - Enable SSL for: xpms.de
11.11.2017-12:21 - DEBUG - Writing the vhost file: /etc/apache2/sites-available/xpms.de.vhost
11.11.2017-12:21 - DEBUG - Processed datalog_id 46467
11.11.2017-12:21 - DEBUG - Calling function 'restartHttpd' from module 'web_module'.
11.11.2017-12:21 - DEBUG - Restarting httpd: systemctl reload apache2.service
11.11.2017-12:21 - DEBUG - Remove Lock: /usr/local/ispconfig/server/temp/.ispconfig_lock
finished.
```
Ich habe die alte Certbot Installation entfernt und neu installieren lassen, ich habe festgestellt, dass ISPConfig dem Link /root/.local/share/letsencrypt/bin zur aktuellen Version folgt, welche in /opt liegt. Die Installationsmethode über die Backports funktioniert leider auch nicht wie gewünscht, da es für jessie lediglich Certbot 0.10.2 gibt. Werde zwar demnächst auf stretch aktualisieren, aber bis dahin sollte es auch mit jessie laufen.


----------



## Till (11. Nov. 2017)

Das debug log sieht ok aus. Und der vhost /etc/apache2/sites-available/xpms.de.vhost hat wirklich keine SSL sektion und der Haken bei SSL wurde in ISPConfig entfernt? Die Datei muss 2 mal den vhost enthalten, einmal für http am anfang und dann nochmal für https in der 2. Hälfte der datei.


----------



## BoKo (11. Nov. 2017)

Doch die SSL Sektion ist da, SSL Funktioniert ja auch mit der Seite, nur wie gesagt der Haken verschwindet nach der Aktivierung.
Das wäre ja auch nicht so schlimm wenn es nur ein Optischer Fehler wäre, jedoch wenn man nun mit deaktiviertem Haken etwas anderes an der Webseite ändert, z.B. Umstellen der PHP Version oder so, dann funktioniert SSL nicht mehr und ich muss mit Schritt 1 wieder anfangen.
Die Frage ist einfach, wieso geht der Haken denn überhaupt raus?


----------



## Till (11. Nov. 2017)

Der Haken bei ssl und LE wird entfernt wenn das Erstellen des cert fehlschlägt, das ist aber laut Log bei Dir nicht der Fall und SSL wird ja auch aktiviert, das ist sehr merkwürdig. Welche ISPConfig Version verwendest Du? Und prüfe mal ob in den Limits des Kunden LE aktiv ist, wenn der Kunde kein LE haben darf da es in seinen limits deaktiviert ist, dann wird der Haken auch entfernt.


----------



## BoKo (11. Nov. 2017)

Das ist allerdings sehr merkwürdig, ich konnte bisher ja auch den Grund dafür nicht herausfinden. Das mit den Limits hatte ich selbst schon geprüft, ist bei Reseller und Kunde aktiviert, habe zum testen LE selbst als eingeloggter Kunde aktiviert um dies auszuschließen.
ISPConfig Version ist 3.1.7p1


----------



## BoKo (13. Nov. 2017)

Ich konnte jetzt die Ursache des Problems ausmachen. Es handelt sich um ein Multi Server Setup wobei Server 2 Mirror von Server 1 ist.
Server 1 prüft das LE request akzeptiert es, die Webseite funktioniert mit dem Zertifikat, Server 2 prüft das gleiche nochmal ab bekommt einen Fehler, da das DNS auf Server 1 zeigt und entfernt den LE Haken wieder. Da dies immer nahezu gleichzeitig passiert merkt man nicht gleich, dass Server 2 der Verursacher des Problems ist.
Jetzt frage ich mich, wieso müssen beide Server den Check machen? Wenn Server 2 mirror ist, sollte er doch das fertige Zertifikat von Server 1 beziehen können ohne selbst bei LE anzufragen?
Habe ich hier einen Fehler im Multi Server Setup gemacht, oder ist das ein Bug?


----------



## Till (14. Nov. 2017)

Zitat von BoKo:


> Jetzt frage ich mich, wieso müssen beide Server den Check machen?


Da man bei einem mirror setup nicht vorhersehen kann, welcher server den http request zurück bekommt. Wenn Du LE auf einem Mirror einetzen willst, dann musst Du die Verzeichnisse /etc/letsencrypt und /usr/local/ispconfig/interface/acme/ auf einen network drive legen, z.B. NFS. LE Certs änder sich regelmäßig und werden von LE selbständig erneuert, daher stehen sie nicht in der ISPConfig DB und werden auch nicht repliziert.


----------



## BoKo (14. Nov. 2017)

ok verstehe, und wie kann ich für einen Mirror Server, welcher selbst keine LE Seiten hosten soll, die LE Checks deaktivieren? Der Server soll nur Mirror für DNS sein, ich habe schon versucht den Certbot Client auf dem Mirror Server zu entfernen, das hat aber auch nicht geholfen der Server entfernt weiterhin den Haken. Ich würde gerne, wenn möglich für den Server sämtliche LE Funktionalitäten deaktivieren, dies soll alles der primär Server machen.


----------



## Till (14. Nov. 2017)

Wenn der server ein reiner dns mirror ist, dann darf auf ihm auch nur das das passende DNS Plugin aktiv sein und nicht web und mail usw. Vermutlich hast Du bei der Installation die anderen services aktiviert. Plugins deaktivierst Du durch entfernen der symlinks im /usr/local/ispconfig/server/plugins-enabled/ Verzeichnis.


----------



## BoKo (14. Nov. 2017)

Perfekt, das war die Lösung für mich, vielen Dank.
Mit deaktiviertem Plugin tritt der Fehler nicht mehr auf, ich hatte es zuvor nur über System -> Server Dienste wieder versucht die Web Funktion zu deaktivieren, das brachte keine Änderung, aber mit dem Symlink klappts 

Ja, ich habe auf dem Server beim Setup alle Funktionen aktiviert, da es geplant ist in Zukunft auch Web und Mail zu spiegeln, jedoch wollte ich das ohnehin nur für ausgewählte Nutzer haben, heißt aber dann wiederum, dass ich alle oder keine Domains voll Spiegel müsste, da sonst wieder zu den Lets Encrypt Problemen kommt? Vielleicht kannst du es ja in einer zukünftigen ISPConfig Version ermöglichen Lets Encrypt in ein eigenes Plugin zu packen, sodass man Apache ohne Lets Encrypt checks auf dem Mirror Server betreiben kann  und die vorhandenen Zertifikate ausgewählter Domains  mit rsync vom master bezieht? Dies nur mal so als Vorschlag.

Jedenfalls tausend Dank für die Hilfe


----------



## mrairbrush (6. Dez. 2017)

Zitat von Till:


> Also, das Formular sieht so aus wie im Anhang, es handelt sich um ein select Feld und nicht Textfeld, dort kannst Du zwiischen 3 werten wäheln, der richtige Wert ist "Debug", diesen wählst Du aus, dann scrollst Du runter und am Ende der Seite klicks Du auf den Button 'Speichern'.


Gefunden. Auf Debug gestellt. Fehler... nix.
Ip Adressen alle auf *
/usr/local/ispconfig/server/server.sh ergibt nur finished.
Haken bei ssl und letsencrypt verschwindet nach dem speichern nach wie vor. Scheint nicht zu funktionieren. Vielleicht kann man eine externe Lösung finden.


----------



## florian030 (7. Dez. 2017)

Du hast aber nicht zufällig einen Mirror?


----------



## Till (8. Dez. 2017)

Oder Dein Server ist hinter einer Firewall oder NAT router so dass man vom server aus nicht auf domains zugreifen kann die auf dem server liegen?


----------

