Https-Zertifikat

Aus Letto-Wiki
Zur Navigation springen Zur Suche springen

siehe auch

  • Der LeTTo-Server muss aus dem Internet über eine https-Verbindung erreichbar sein. Im Normalfall ist das System so eingestellt, dass jede http-Anfrage an Port 80 auf https mit Port 443 weitergeleitet wird.
  • Um mit https korrekt kommunizieren zu können muss dem Browser ein korrektes https-Zertifkat vom Server zur Verfügung gestellt werden. Da sich alle System hier etwas unterschiedlich Verhalten stehen mehrere Varianten für die Verwaltung des Zertifikates zur Verfügung.
  • Grundsätzlich werden die Einstellungen für das https-Zertifikat im Docker-Container letto-proxy in der Konfigurationsdatei /opt/letto/docker/compose/letto/.env vorgenommen, die im Setupservice über den Button "Edit .env" in der Zeile "LeTTo Docker" editierbar ist
 
  • Nach einer Änderung in der Zertifikatseinstellung oder in der .env-Datei muss der letto-proxy neu gestartet werden mit "RESTART" bei "LeTTo Docker" im Setup-Service oder von der Kommandozeile des Hosts mit
cd /opt/letto/docker/compose/letto
docker compose down
docker compose up -d

Einträge in der .env Datei für die Zertifikatsverwaltung

Variable Beschreibung gültige Werte Default
SELF_SIGNED Gibt an ob ein selbstsigniertes Zertifkat erstellt werden soll 0,1 1
CERT_EXTERN Gibt an ob ein externes Zertifikat verwendet werden soll 0,1 0
CREATE_HTTPS Gibt an ob die Datei https.conf der Proxy-Konfiguration automatisch beim Start des Proxy neu erzeugt werden soll. 0,1 1
USE_HTTP Gibt an ob HTTP-Anfragen an Port 80 automatisch an Port 443 redirected werden sollen. 0,1 1
SERVER_NAME Standard Domain Name als Hauptname für ein Lets-Encrypt Certifikat localhost
DOMAIN_ALTERNATIV Liste von weiteren Domain-Bezeichnungen für den Server für die ein Lets-Encrypt Certifikat erzeugt werden soll. Die Domains sind duch Leerzeichen zu trennen

selbstsigniertes Zertifikat

  • Ist keine Einstellung für eine Zertifikat vorhanden wird vom letto-proxy Container automatisch ein selbstsigniertes Zertifikat für https verwendet. Mit diesem Zertifikat ist nur eine eingeschränkte Kommunikation mit dem Server möglich indem man am Browser das selbstsignierte Zertifikat akzeptiert. Für den normalen Betrieb eines Servers kann diese Zertifikat nicht verwendet werden!
  • Mit der Variablen SELF_SIGNED=0 in der .env-Datei kann man die Erzeugung des selbstsignierten Zertifikates verhindern.

Zertifikat mit Certbot

  • In der Standardeinstellung wird CertBot verwendet um ein Let's-Encrypt Zertifikat zu erstellen.
  • Zertifikat und Zertifikatsinfo wird in den Docker-Volumes certs und certs-data gespeichert
  • Das Zertifikat wird für die Domain welche in der Variablen SERVER_NAME angegeben ist und für alle Namen der Variable DOMAIN_ALTERNATIV erzeugt.

eigenes Zertifikat

  • TODO - Doku noch nicht fertig

Verwendung eines externen Reverse-Proxy welcher das https-Zertifikat verwaltet

Sondereinstellungen von https im letto-proxy

  • Die Datei /opt/letto/docker/proxy/https.conf wird im Normalfall bei jedem Start vom Proxy neu geschrieben. Setzt man die Variable CREATE_HTTPS=0 dann wird die Datei https.conf nicht mehr überschrieben und man kann die Konfiguration von https in dieser Datei an die gewünschten Anforderungen anpassen. Verwenden sie dazu die Doku von nginx um Weiteres zu erfahren.