Gemäß dem Wiki-Eintrag vom „letsencrypt-plesk“-Repository auf Github hat sich der Befehl zum Bezug von „Let’s Encrypt“-Zertifikaten geändert. Die alte Methode funktioniert zwar auch weiterhin, die Frage ist jedoch, wie lange. Zudem möchte ich meine Beiträge gerne aktuell halten.
Um alle in Plesk angelegten Domains und deren www-Subdomain mit einem Zertifikat zu versehen, empfehle ich, bis diese Funktion eventuell bei der Extension selbst implementiert ist, den folgenden Einzeiler:
for i in `mysql -uadmin -p\`cat /etc/psa/.psa.shadow\` psa -Ns -e "select name from domains"`; do
plesk bin extension --exec letsencrypt cli.php
-d "$i" -d www."$i"; done
Der Befehl ist mit Vorsicht zu genießen.
Der erste Teil kann so getestet werden:
for i in `mysql -uadmin -p\`cat /etc/psa/.psa.shadow\` psa -Ns -e "select name from domains"`; do echo "$i"; done
Hier sollten nun alle Domains, die in Plesk angelegt sind, angezeigt werden.
Der zweite Teil kann so getestet werden:
plesk bin extension --exec letsencrypt cli.php
-d domain.tld -d www.domain.tld
Die Domain „domain.tld“ sollte nun inkl. Subdomain „www.domain.tld“ mit einem Zertifikat versehen worden sein.
Hinweis: Diese neue Methode benötigt die „Let’s Encrypt Plesk-Extension“ mindestens in Version 1.3! Ansonsten die alte Methode nutzen.
gibt es eine Möglichkeit das ganze in einem cronjob laufen zu lassen? bei mir funktioniert der plesk bin Befehl nicht im cronjob
Hallo,
grundsätzlich sollte das auch als Cronjob lauffähig sein. Ich habe gerade mal unter CentOS 6 getestet und vermute, dass du im Cronjob ohne die entsprechenden Umgebungsvariablen zu setzen, das „plesk“-Kommando nutzen möchtest. Das geht leider so nicht.
Korrekt ist, entweder die Umgebungsvariable zu setzen oder den vollständigen Pfad zum „plesk“-Executable zu nutzen. Getestet habe ich die beiden Möglichkeiten, indem ich jede Minute „plesk version“ ausgeführt und dessen Output in eine Datei geschrieben habe.
Möglichkeit 1: „PATH“-Umgebungsvariable setzen
Bei mir liegt laut „whereis plesk“, das Executable hier:
/usr/sbin/plesk
Im cron-File folgendes über der auszuführenden Zeile hinzufügen:
PATH=/usr/sbin
Möglichkeit 2:
Statt nur „plesk“, den vollständigen Pfad zum Executable angeben:
Funktioniert:
* * * * * /usr/sbin/plesk bin extension –exec letsencrypt cli.php -d domain.tld -d http://www.domain.tld
Funktioniert nicht:
* * * * * plesk bin extension –exec letsencrypt cli.php -d domain.tld -d http://www.domain.tld