Letsencrypt mit lmn7

Hej,
@Michael und wir haben ein ganz ähnliches Setting (auch „interner FQDN = externer FQDN“) aber wir holen unsere Zertifikate tatsächlich direkt auf dem pädagogischen Server.

Hier mal (ziemlich ungefiltert) meine Notizen von damals, als ich das eingerichtet habe.


Notizen: Let’s Encrypt auf/ für pädagogischem Server

Auf dem pädagogischen Server läuft nur noch ajenti, kein anderer Webserver wie nginx oder apache. Deshalb kann man sich nicht ein Zertifikat von dehydrated holen lassen. :frowning:

Der certbot braucht aber keinen eigenen webserver, weshalb man den verwenden kann.

Voraussetzung: Portweiterleitung

Zumindest für Port 80 muss auf der OpenSense eine Portweiterleitung zum Server eingerichtet werden

Certbot installieren und einrichten

  • Es reicht die Version aus den Paketquellen : sudo apt install certbot
  • Mit dem Befehl sudo certbot certonly --standalone wird certbot eingerichtet, es werden einige Informationen (E-Mailadresse für Warnungen und natürlich servername für das Zertifikat) abgefragt
  • Zudem wird ein cronjob angelegt (in /etc/cron.d/certbot). Um zu überprüfen ob alles geklappt hat, kann man sudo certbot renew --dry-run ausführen

Zertifikate verschieben

Die Zertifikate werden /etc/letsencrypt/live/<servername> abgelegt.

Die WebUI benötigt ein Bundle aus privkey und fullchain. Deshalb:
cat fullchain.pem privkey.pem > server.le.cert.bundle.pem
(Reihenfolge stimmt so…)

Samba dagegen braucht die Einzeldateien. Siehe unten…

Zunächst müssen die Zertifikate an den richtigen Ort kopiert werden:

cd /etc/letsencrypt/live/server.MEINE-SCHULE.de/
cat fullchain.pem privkey.pem > /etc/linuxmuster/ssl/server.le.cert.bundle.pem
cp privkey.pem /etc/linuxmuster/ssl/server.le.privkey.pem
cp fullchain.pem /etc/linuxmuster/ssl/server.le.fullchain.pem
cp chain.pem /etc/linuxmuster/ssl/server.le.chain.pem

chown root:ssl-cert /etc/linuxmuster/ssl/server.le*
chmod 640 /etc/linuxmuster/ssl/server.le*
chmod 600 /etc/linuxmuster/ssl/server.le.privkey.pem

Das Ganze kann in einen Deploy-Hook für certbot: /etc/letsencrypt/renewal-hooks/deploy/copy_certs.sh. Angepasste Version von hier

Edit 2021-01: Es muss nach dem renewal nicht nur die WebUI sondern auch Samba neu gestartet werden:

# Restart WebUI && Samba
systemctl restart linuxmuster-webui
systemctl restart samba-ad-dc.service

Zertifikate scharfschalten.

  1. In der WebUI als gobal-admin unter Einstellungen > globale Einstellungen das bundle eintragen (server.le.cert.bundle.pem). Das setzt einen Eintrag in /etc/ajenti/config.yml
    Danach die WebUI neu starten: systemctl restart linuxmuster-webui
  2. /etc/samba/smb.conf.admin editieren
  tls keyfile = /etc/linuxmuster/ssl/server.le.privkey.pem
  tls certfile = /etc/linuxmuster/ssl/server.le.fullchain.pem
  tls cafile = /etc/linuxmuster/ssl/server.le.chain.pem
  1. chain.pem nach var/lib/samba/sysvol/[FQDN]/tls kopieren und in cacert.pem umbenennen
    Linuxmuster-client-adsso funktioniert nicht (mehr) - #5 von foer
    Danach
    1. macct-Datei löschen
    2. linuxmuster-client-adsso-setup auf dem Masterclient ausführen
    3. Image schreiben

Der letzte Schritt bezieht sich auf den alten Linuxclient - Nicht mehr beachten…

Grüße
Michael