Wenn man Let’s Encrypt Zertifikate erzeugt, so landen diese im Ordner /etc/letsencrypt/. Die Rechte sind dabei so gewählt das nicht privilegierte Prozesse auf diese Zertifikate nicht zugreifen können. Läuft nun z.B. ein Server mit solchen Rechten, so kann er das Zertifikat nicht ohne weiteres nutzen. Um diesem Umstand zu beseitigen sollte eine neue Nutzergruppe angelegt werden:
groupadd tls-certificates
Dieser Gruppe wird nun der Nutzer hinzugefügt, welcher den Serverdienst betreibt:
usermod -a -G tls-certificates git
Damit wird der Nutzer git der Gruppe tls-certificates hinzugefügt. Nun müssen nach der Zertifikatsgenerierung die Berechtigungen angepasst werden:
#!/bin/sh service gogs stop letsencrypt renew --agree-tos chgrp -R tls-certificates /etc/letsencrypt chmod -R g=rX /etc/letsencrypt service gogs start
In diesem Skript wird im ersten Schritt der Service gestoppt. Anschließend werden neue Zertifikate erzeugt und die Berechtigungen angepasst. Damit kann die Gruppe tls-certificates auf die Zertifikate zugreifen. Danach wird der Service wieder gestartet, was nun dank Zugriff auf die Zertifikate ohne Probleme funktioniert.
Seit ca. 2006 gibt es unter Debian und dessen Abkömmlingen die Gruppe ssl-cert genau für diesen Zweck.
Wieder was gelernt ;) Sollte die Gruppe nicht in der Datei /etc/group aufgeführt sein (oder ist sie standardmäßig nicht eingerichtet)? Kann sie dort unter Ubuntu 16.04 nicht finden.
Die Gruppe wird durch die Installation der Pakete openssl und/oder ssl-cert angelegt. Das Verzeichnis /etc/ssl/private, welches für private Keys vorgesehen ist, sollte anschließend der Gruppe ssl-cert gehören.