Frage, ISPconfig Zertifikat und mehrere Domains

Domi83

New Member
Hallo zusammen und frohe Weihnachten,

ich habe mal eine Frage die vermutlich sehr selbsterklärend ist, aber irgendwo hab ich einen Denkfehler.

Irgendwo Richtung Spätsommer / Herbst habe ich meinen Server neu aufgesetzt und hatte es mittels acme.sh hinbekommen in das Zertifikat für mein ispconfig (/usr/local/ispconfig/interface/ssl) auch eine weitere Domain eintragen zu lassen.

Als ich z.B. certbot vorher im Einsatz hatte, waren alle Zertifikate mal im /etc/letsencrypt und ich hatte dort einfach die Domain des Zertifikates für ispconfig eingegeben und anschließend mit "-d domain.tld" das Zertifikat erweitert. Aber irgendwie scheint das mit acme.sh nicht zu funktionieren.

Ich hab gestern Abend auch mit "--force" und auch einem "renew" das ding zu erweitern, aber da wurde wirklich nur ein Renew durchgeführt :(

Natürlich kann man sich nun alles entsprechend umpuhlen etc., aber ich wollte es gerne im "Standard" lassen ohne jetzt hier und da etwas zu ändern.

Es gibt ja im "~/.acme.sh/" den Ordner "domain.tld", aber Symlinks sind das leider nicht. Denn einer meiner Gedanken war auch einfach via "acme.sh --force --issue --standalone -d domain.tld -d domain2.tld" mein Zeritifkat zu erstellen, aber dann war dieses noch nicht im ISPconfig drin.

Gibt es hier eine Patentlösung die ich noch nicht gesehen habe?

Gruß, Domi
 

Domi83

New Member
Ich habe mir selbst eine Option zusammen gebaut... aber vielleicht gibt es da noch eine elegantere Variante.
Code:
cd /usr/local/ispconfig/interface/ssl
ln -s /root/.acme.sh/srv01.domain.tld/fullchain.crt ispserver.crt
ln -s /root/.acme.sh/srv01.domain.tld/srv01.domain.tld.crt ispserver.key
cat ispserver.{key,crt} > ispserver.pem
Davor habe ich mir dann via "--standalone" ein neues Zertifikat mit all meinen Domains erstellt und fertig ist.
 

Domi83

New Member
Nachtrag zu dem Thema... irgend ein von ISPconfig erstelltes Skript fand diese Lösung (Post 2) nicht witzig und hat am vergangenen Montag beim ---post-hook Zicken gemacht und mir den Apache lahm gelegt.

Hier also die nächste Frage, warum bitte wird hier mit Kopien gearbeitet die im Ordner "/usr/local/ispconfig/interface/ssl" abgelegt sind??

Vorher konnte man einfach das bereits von ISPconfig erstellte Zertifikat mit weiteren Domains füttern und fertig ist. Wenn man dieses jetzt macht,
Code:
acme.sh --issue --keylength 4096 --standalone -d srv01.domain.tld -d mail01.domain.tld

wird zwar das Zertifikat im Ordner "/root/.acme.sh/srv01.domain.tld/" erweitert, aber ein separates Skript vom ISPconfig scheint dann so etwas wie folgendes durchzuführen...
Code:
cd /usr/local/ispconfig/interface/ssl/
rm ispserver.{key,crt}
cp /root/.acme.sh/srv01.domain.tld/fullchain.cer ispserver.crt
cp /root/.acme.sh/srv01.domain.tld/srv01.domain.tld.key ispserver.key
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
cat ispserver.{key,crt} > ispserver.pem
chmod 750 ispserver.{key,crt,pem}
systemctl restart pure-ftpd-mysql.service
systemctl restart postfix.service
systemctl restart dovecot.service
systemctl restart apache2.service

Wie es sich jetzt in knapp drei Monaten verhält, wenn die LE Zertifikate erneuert werden, weiß ich nicht... aber vielleicht kann man hier etwas Klarheit verschaffen oder eventuell kann man hier ja im ISPconfig die Möglichkeit einräumen über die GUI das Zertifikat mit weiteren Domains zu füllen :)

Gruß, Domi
 
Zuletzt bearbeitet:

Till

Administrator
Hier also die nächste Frage, warum bitte wird hier mit Kopien gearbeitet die im Ordner "/usr/local/ispconfig/interface/ssl" abgelegt sind??

Weil acme.sh das so macht, acme.sh funktioniert halt anders als certbot, lies Dir vielleicht mal die Doku zu acme.sh durch wenn Du weiteres darüber wissen möchtest wie diese Software funktioniert. Das installieren des SSL certs wird von acme.sh selbst durchgeführt, nicht von ISPConfig, möglicherweise hast Du da aber was durch Deine manuellen Aufrufe in der acme.sh renewal config geändert bzw. überschrieben, so dass es bei Dir jetzt nicht mehr funktioniert. acme.sh selbst ruft dann auch ein Script auf welches die Dienste neu startet und ggf. manuell certs zusammen kopiert.
 

Till

Administrator
Und Du musst sicherstellen dass Du keine website für den Hostnamen des Servers in ISPConfig anlegts, denn dann kann das Cert fr das panel nicht mehr funktionieren, denn acme.sh kopiert das cert an genau eine Stelle, legst Du eine website an dann erklärst Du dadurch acme.sh dass es keine certs mehr für ISPConfig erstellen soll sondern nur noch welche für diese website.
 

Domi83

New Member
Moin und vielen Dank für die Rückmeldung...

acme.sh funktioniert halt anders als certbot
Das stelle ich auch nicht infrage, aber...

Irgendwo scheint hier ein Missverständnis zu sein oder wir reden aneinander vorbei.

Ich habe vorhin über den ISPconfig Auto Installer einen komplett neuen Server mit ISPconfig aufgesetzt und finde einige Datei für SSL,
- /usr/local/ispconfig/interface/ssl/ispserver.crt (kein Symlink)
- /usr/local/ispconfig/interface/ssl/ispserver.key (kein Symlink)
- /usr/local/ispconfig/interface/ssl/ispserver.pem (kein Symlink)

diese Dateien hat doch nicht ernsthaft acme.sh erstellt und genau DA abgelegt, wenn es die ursprünglichen Dateien hier abgelegt hat,
- /root/.acme.sh/srv01.domain.tld/

Bei "certbot" (und wie sie nicht alle heißen) hattest du deinem ISPconfig ja auch gesagt dass es auf die Dateien im Ordner "/etc/letsencrypt/" zurückgreifen soll.

Ich gehe jetzt davon aus, dass dein Auto Installer ne acme.sh Abfrage durchführt, sobald die Files da sind ein 'cp' macht, die Dateien unter "/usr/local/ispconfig/interface/ssl/" und du diese von dort aus verarbeitest. Was ja auch vollkommen OK wäre.

Cool wäre nur, wenn man jetzt das SSL Zertifikat welches für den Server selbst verwendet wird, mit weiteren Domains erweitern könnte und sich dieses Update dann auch auf die Dateien im Ordner "/usr/local/ispconfig/interface/ssl/" auswirkt.

Entweder über ein Skript auf dem Server oder via GUI und schon ist alles cool :)

Post 2 von dir hab ich eben übersehen...

denn acme.sh kopiert das cert an genau eine Stelle
auch diese Zertifikate landen ja unter "/root/.acme.sh/", was ja alles kein Thema (oder Problem) ist :)

Gruß, Domi

p.s. Für den Fall dass das alles falsch rüber kommt, dass soll kein Gemecker sein. Das sollte so etwas wie konstruktive Kritik sein :) Dein System gefällt mir weiterhin sehr gut, ich verwende es (seit Jahren) gerne und empfehle es auch gerne weiter.
 

Till

Administrator
Ich habe vorhin über den ISPconfig Auto Installer einen komplett neuen Server mit ISPconfig aufgesetzt und finde einige Datei für SSL,
- /usr/local/ispconfig/interface/ssl/ispserver.crt (kein Symlink)
- /usr/local/ispconfig/interface/ssl/ispserver.key (kein Symlink)
- /usr/local/ispconfig/interface/ssl/ispserver.pem (kein Symlink)

Korrekt, es hat also alles funktioniert und das system wurde richtig installiert.

diese Dateien hat doch nicht ernsthaft acme.sh erstellt und genau DA abgelegt, wenn es die ursprünglichen Dateien hier abgelegt hat,
- /.acme.sh/srv01.domain.tld/

Doch, genau das hat acme.sh gemacht. daher ja auch meine Empfehlung sich mal die acme.sh Doku anzusehen, wenn Du wissen möchtest wie acme.sh funktioniert.

Bei "certbot" (und wie sie nicht alle heißen) hattest du deinem ISPconfig ja auch gesagt dass es auf die Dateien im Ordner "/etc/letsencrypt/" zurückgreifen soll.

Richtig, certbot funktioniert diesbezüglich ja auch koplett anders als acme.sh. Ein Symlink nach /root/.acme.sh/srv01.domain.tld/ würde alleine schon an den Rechten des Root Verzeichnisses scheitern.

Ich gehe jetzt davon aus, dass dein Auto Installer ne acme.sh Abfrage durchführt, sobald die Files da sind ein 'cp' macht, die Dateien unter "/usr/local/ispconfig/interface/ssl/" und du diese von dort aus verarbeitest. Was ja auch vollkommen OK wäre.

Da liegts Du komplett falsch, das macht acme.sh selbst und führt dies auch bei Updates selbst erneut durch.
 

Domi83

New Member
Doch, genau das hat acme.sh gemacht. [...] Da liegts Du komplett falsch, das macht acme.sh selbst
Interessant... hier wäre wiederum die Frage woher acme.sh weiß, dass es diesen Pfad gibt und es die Dateien dort hinein kopieren soll. Aber wenn ich das anhand der Github Daten richtig sehe, ist der Autor der "Neil" und vielleicht hat er auch einfach ne "if" Abfrage eingebaut.

Getreu dem Motto "wenn das Verzeichnis /usr/local/ispconfig/ exisitiert, erstelle mal die anderen Ordner und lege dort das Zertifikat ab" :)

Aber, das Zertifikat welches der Auto Installer mit installiert (sei es über acme.sh oder sonstiges) hab ich mir nun mit einem kleinen Workaround mit den Domains erweitert.

Und Du musst sicherstellen dass Du keine website für den Hostnamen des Servers in ISPConfig anlegts
So komme ich auch auf diesen Absatz zurück... Da mache ich mir keine Sorgen.

Wer nennt bitte seine Webseite mail.domain.tld? :)

Die Erweiterung des Zertifikates dient nur dazu, dass ich mail.* zusätzlich in dem Zertifikat hinterlegen kann, mehr eigentlich nicht.

Gruß, Domi
 

Domi83

New Member
Wow... OK, damit hab ich nicht gerechnet, aber der Post hätte auch von mir sein können :D

Ich weiß aber was du meinst.

Mir geht es auch um Postfix und Dovecot, ich möchte den Leuten nicht sagen "nimm srv01.domain.tld im E-Mail Client", sondern sie können ruhig mail.ihre-domain.tld nehmen, oder ich mache ne mail.01.domain.tld für die Client.

Mir geht es auch darum, mache ich einen neuen Server und der alte kommt weg, hat der halt srv02.domain.tld, bekommt auch mail02.domain.tld und die alte mail01.domain.tld könnte man ebenfalls darauf umbiegen.

Am ende hätte man vielleicht einen Server mit mail01, mail02... mail22.domain.tld, aber man kann ja auch rollieren und muss nicht zwingend hochzählen etc.

Zumindest wäre eine bessere Flexibilität da ;)
 

Till

Administrator
Interessant... hier wäre wiederum die Frage woher acme.sh weiß, dass es diesen Pfad gibt und es die Dateien dort hinein kopieren soll.

Weil es das mitgeteilt bekommt via cmdline option beim erstmaligen installieren des certs.

Mir geht es auch darum, mache ich einen neuen Server und der alte kommt weg, hat der halt srv02.domain.tld, bekommt auch mail02.domain.tld und die alte mail01.domain.tld könnte man ebenfalls darauf umbiegen.

Alle größeren provider nutzen nur eine zentrale Domain für alle Mailkonten und keine Kunden Domains. das problem mit Kunden domains ist dass Du das cert jeweils neu erstellen musst wenn ein Kund ehinzu kommt oder weg geht, außerdem reicht es aus das ein einziger Kunde seinen DNS ändert umd das renewal für ale Kunden fehlschlagen zu lassen und Du kannst nur max. 100 Domains in einem Cert haben, und Du kannst es später auch nicht ändern ohne das alle Kunden ihre mailclients ändern müssen wenn Du an das Limit stößt. Aus diesem Grunde macht ISPConfig es eben so dass ein Setup verwendet wird das stabiler und skalierbarer ist, als das was Du jetzt verwendest.
 

Domi83

New Member
Ja, steht auch in der Beschreibung von acme, dass maximal 100 Domains möglich wären, aber das wäre halb so wild. Da ist massenhaft Luft nach oben bis ich die 100 erreicht habe :-D

Aber wichtig wäre mir halt, wenn ich neben srv01.mein-server.tld auch mail01.mein-server.tld mit einbringen kann. Dass die großen das auch so machen weiß ich. Bei Hetzner, All-Inkl, Ionos etc. hab ich das noch nie gesehen dass sie einem eine mail.domain.tld einräumen, nur damit es für die Leute schöner aussieht :)

Aber zurück zu den vielen Einträgen, ich will das Zertifikat auch nicht voll hauen mit zig Einträgen... kann man machen, muss man aber nicht. Daher wäre es schon cool, wenn ich zumindest so etwas wie mail01.mein-server.tld eintragen kann, was ich dann den Leuten mitteilen kann.

ODER man schaltet doch nen Reverse Proxy (oder was anderes) als Load-Balancer davor, der immer zuerst angesprochen wird, wenn es um E-Mails geht.

Gruß, Domi
 

Werbung

Top