Benutzer-Werkzeuge

Webseiten-Werkzeuge


lets_encrypt

Dies ist eine alte Version des Dokuments!


Allgemein

  • Zertifikate sind 90 Tage gültig
  • Anmeldung, Bezug und Erneuerung erfolgt über eine Client-Software die das ACME-Protokoll kann
  • es gibt keine Wildcard-Zertifikate
  • mehrere Domains/Sub-Domains in einem Zertifikat möglich
  • relativ große Limits wie viele Zertifikate zu einem Zeitpunkt ausgestellt werden können
  • Certificate-Revocation-List wird von CA gepflegt

Erfahrung

Conversations

  • Conversations 1.16.2 meldet das Zertifikat als unbekannt

Prosody

  • Kann ohne Modifikation nicht auf die Zertifikate zugreifen weil es als eigener Benuzer prosody läuft und die Zertifikate nur „root“ zugänglich sind
  • Lösung siehe unter „Troubleshooting“

Troubleshooting

Dienst läuft nicht als root

Dienste die nicht als root laufen oder die Zertifikate nicht abfragen während sie noch als root laufen (einige Dienste starten als root und wechseln nach dem Start in den Kontext eines anderen Benutzers) können nicht auf die Zertifikate unter „/etc/letsencrypt/live/Domain“ zugreifen bzw. unter „/etc/letsencrypt/archive/Domain“ weil diese Verzeichnisse nur root zugänglich sind.

Lösung ist das Setzen der erweiterten Berechtigungen ACL für diese Verzeichnisse (gibt noch andere mögliche Wege) und setzen von Default-Berechtigungen für diese Verzeichnisse → dadurch bekommen neu erstellte Dateien (wichtig wenn die Zertifikate erneuert werden) automatisch die richtigen erweiterten Berechtigungen.

Erweiterte Berechtigungen setzen, auch für alle Unterverzeichnisse und Dateien (x ist notwendig um den Verzeichnisinhalt listen zu können):

Syntax:

setfacl -R  -m u:<Benutzer>:rx live
setfacl -R  -m u:<Benutzer>:rx archive

Beispiel:

setfacl -R  -m u:prosody:rx live
setfacl -R  -m u:prosody:rx archive 

Die oben beschriebenen Anweisungen setzen für alle Verzeichnisse und Dateien unterhalb von „live“ und „archive“ die Berechtigung lesen ® und Auflisten/Ausführen (x) für den Benutzer „prosody“ bzw. den einzutragenden Benutzer.

Setzen der Default-Berechtigungen (Kopieren der bestehenden Berechtigungen und setzen als Default): Syntax/Beispiel:

getfacl live | setfacl -R -d -M - live
getfacl archive | setfacl -R -d -M - archive

Das obige Beispiel holt sich die bestehenden Berechtigungen per getfacl für die Verzeichnisse „archive“ und „live“ und setzt sie über setfacl als Default-Berechtigung (Option -d) für alle untergeordneten Dateien und Verzeichnisse (-R).
Das bedeutet Dateien die in irgend einem der Unterverzeichnisse neu angelegt werden bekommen automatisch die Default-Berechtigungen als Berechtigungen gesetzt.
Das ist wichtig wenn die Zertifikate erneuert werden, da sie sonst nur die „normalen“ Standardrechte haben und andere Benutzer als root danach wieder keinen Zugriff haben.



Hinweis: Die Methode hat Nachteile. Für alle Verzeichnisse wird „x“ für den entsprechenden Benutzer gesetzt (Inhalt auflisten) und wegen der Rekursivität des Befehls (-R) auch für alle Dateien in dem Verzeichnis, was ausführen bedeutet. Es werden also Dateien ausführbar die nicht ausführbar sein brauchen. Außerdem bekommt der Benutzer lesenden Zugriff auf alle Zertifikate (wegen dem rekursiven Setzen der Berechtigung auf archive und live), auch auf die er keinen Zugriff braucht. Beides kann im schlimmsten Fall genutzt werden wenn es ein Angreifer schafft im Kontext des Dienstes (und damit mit dessen Rechten) eigenen Code auszuführen und reißt ein gewisses Loch in die Sicherheit die mit dem ausführen als anderer Nutzer (nicht root) aufgebaut wurde.

lets_encrypt.1488718953.txt.gz · Zuletzt geändert: 2017/03/05 14:02 von root