piVCCU mit letsencrypt Zertifikat - wenn's unbedingt sein muss

Virtualisierte CCU für Raspberry Pi und Clones

Moderator: Co-Administratoren

Antworten
rentier-s
Beiträge: 378
Registriert: 19.06.2017, 09:24
Hat sich bedankt: 20 Mal
Danksagung erhalten: 67 Mal

piVCCU mit letsencrypt Zertifikat - wenn's unbedingt sein muss

Beitrag von rentier-s » 30.01.2024, 08:48

Hallo zusammen,

aus verschiedenen Gründen habe ich mich in letzter Zeit mit dem Thema letsencrypt Zertifikat für die piVCCU beschäftigt. Kurz gesagt, es funktioniert, ist aber eine ganz schöne Bastelei und absolut nichts für jedermann.

Das Zertifikat muss von außen in die CCU gefüttert werden, dafür bietet piVCCU zwei wesentliche Vorteile. Zum einen hat man eh einen Host laufen, auf dem man zB. den ACME client installieren kann, zum anderen ist das Dateisystem des Containers vom Host aus zugänglich.

Zunächst braucht man eine dynDNS Adresse, unter der die CCU dann später im lokalen Netz erreichbar sein wird. Ich verwende dnsmasq als lokalen DNS Server und habe dort den dynDNS Eintrag fest mit der lokalen IPv4 Adresse der CCU verknotet.
Theoretisch sollte es stattdessen möglich sein, den dynDNS A Record für die ACME challenge kurzzeitig auf die öffentliche IP-Adresse und im Anschluss gleich wieder auf die lokale CCU Adresse zu setzen, sofern der Anbieter das zulässt und der Router einen abschaltbaren re-bind Schutz hat. Habe ich nicht probiert.

Weiter geht es mit dem Webserver, dort braucht man einen (virtuellen) Host, der auf die dynDNS Adresse hört. Das sollte eine Sackgasse sein und wird nur für die HTTP challenge gebraucht, keine Inhalte oder sonst was. Denkbar wäre allenfalls ein gesicherter Reverse Proxy auf die CCU für alle, die ernsthaft wissen was sie tun.

Da man nun die Voraussetzungen hat, um sich ein Zertifikat von letsencrypt ausstellen zu lassen, geht es mit diesem weiter. letsencrypt liefert kein RSA, das muss man sich selbst aus dem Schlüssel erzeugen. Damit und dem privaten Schlüssel kann man sich das pem zusammenbauen.
Nun kommt der zweite Trick an piVCCU, das Zertifikat des CCU Containers liegt aus Sicht des Hosts unter /var/lib/piVCCU3/userfs/etc/config/server.pem, dort muss das neue Zertifikat also hin.
Ich würde an der Stelle empfehlen, das alte vorsichtshalber aufzubewahren, und evtl. den SSH Zugriff der CCU aktiviert zu lassen, damit man im Notfall dran kommt.

Zum Schluss muss noch der lighttpd der CCU neu gestartet werden, um das neue Zertifikat zu verwenden. Ich habe mir dazu einen CUxD Exec Taster angelegt, der ein "/etc/init.d/S50lighttpd restart" macht.
Nötig ist der Neustart nur, wenn sich das Zertifikat auch wirklich geändert hat. Das überprüfe ich im Anschluss an "certbot --renew" anhand des Zeitstempels des Zertifikats. Wenn die Dateien von heute sind, wird die pem daraus gebaut, in den Container geschoben und anschließend per RemoteSkriptAPI der Restart-Taster gedrückt.

Auf diese Art und Weise hat sich das Zertifikat bislang bereits einmal selbsttätig erneuert, in drei Monaten sind wir wieder dran.

Zusammengefasst lässt sich also sagen, man kann piVCCU mit einem letsencrypt Zertifikat betreiben und einmal eingerichtet läuft das ganze auch alleine vor sich hin. Ohne entsprechende Vorkenntnisse oder wenn man dafür erst sein ganzen Netzwerk umbiegen muss, würde ich davon abraten.

Wovor definitiv gewarnt werden muss, ein letsencrypt Zertifikat bringt immer eine deutlich gesteigerte Anzahl an Hacking-Versuchen mit sich. Wenn man also noch andere Dienste betreibt, die aus dem Internet erreichbar sind, sollten diese entsprechend gesichert werden, fail2ban usw. sind Pflicht.

Antworten

Zurück zu „piVCCU“