Let’s Encrypt SSL-Zertifikat für Kopano beantragen

Version 2.1 von Jens Gruber am 2022/05/02 10:23

Damit der Webzugriff von Kopano über ein Zertifikat abgesichert ist, muss dieses erst auf dem logoDIDACT-Server generiert werden. In folgendem Artikel erfahren Sie, was für Vorrausetzungen es gibt und über welche Wege ein Zertifikat generiert werden kann.

Vorrausetzungen

Portweiterleitung

Damit ein Zertifikat generiert werden kann, müssen folgende Ports vom Router (WAN) an den logoDIDACT-Server weitergeleitet werden:

WAN (Internet) TCP-Port 80 -> auf externe IP-Adresse des logoDIDACT-Servers [http]
WAN (Internet) TCP-Port 443 -> auf externe IP-Adresse des logoDIDACT-Servers [https]
Split-DNS

Split-DNS muss im logosrv eingerichtet werden und sorgt für ein zuverlässiges beantragen des SSL-Zertifikates. Hintergrund für Split-DNS ist ein oftmals fehlerhaftes NAT-Loopback am Router. Dies sorgt dafür dass nicht versucht wird, interne Adressen auch intern aufzulösen sondern ins Internet geschickt werden. 

Führen Sie folgende Schritte für die Einrichtung durch:

Öffnen Sie die Datei "named.conf.local" im logosrv:

root@logosrv:~ # vim /etc/bind/named.conf.local

Bearbeiten Sie die Datei wie folgt (Ersetzen Sie "musterstadt" durch den Schul-Shortname):

## Externe dynamische IP intern auflösen
zone "musterstadt.logoip.de" {
  type master;
  file "/etc/bind/db.dynip";
  check-names ignore;
};

Öffnen Sie die Datei "db.dynip" im logosrv:

root@logosrv:~ # vim /etc/bind/db.dynip

Passen Sie gegebenenfalls die IP des Rev-Proxy Containers an. Im Standard ist diese die "172.28.28.27":

$TTL 1h
@                IN     SOA   ns1.schule.local. postmaster.schule.local. (
                                2009010101 ; serial
                                86400      ; refresh (1 day)
                                900        ; retry (15 minutes)
                                604800     ; expire (1 week)
                                900        ; minimum (15 minutes)
                                )

                 NS      ns1.schule.local.
                 NS      ns2.schule.local.

                 A       172.28.28.27
*                A       172.28.28.27

Starten Sie nach den Anpassungen den DNS-Server im logosrv neu:

root@logosrv:~ # /etc/init.d/bind9 restart
acmetool & acme.sh

Nach Schaffung der technischen Vorrausetzungen können Sie das Let's Encrypt-Zertifikat anfordern. Je nach verwendeter Software/Serverstand können Sie die folgenden 2 Wege nutzen:

acmetool

Wechseln Sie in den puppeteer Container:

root@ldhost:~ # lxc-ssh -n puppeteer

Fordern Sie das Zertifikat mit folgendem Befehl an (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):

root@puppeteer:~ # acmetool want kopano.SCHULKUERZEL.logoip.de

acme.sh

Wechseln Sie in den puppeteer Container:

root@ldhost:~ # lxc-ssh -n puppeteer

Wechseln Sie im puppeteer Container in die Umgebung für das Verwalten der Zertifikate:

root@puppeteer:~ # sle

Beantragen Sie ein neues Zertifikat mit folgendem Befehl (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):

le-acme@puppeteer:~ $ issue kopano.SCHULKUERZEL.logoip.de

Um das verteilen der Zertifikate zu beschleunigen können Sie ggf. einen prun im puppeteer und rev-proxy Container durchführen:

root@puppeteer:~ # prun
root@rev-proxy:~ # prun