le). Das setzt voraus, dass Ihre Instanz aus dem Internet über Port 80/443 erreichbar ist.
In vielen Unternehmensumgebungen ist das nicht gewünscht oder nicht möglich. Statt Let’s Encrypt können Sie Traefik ein eigenes Zertifikat bereitstellen – etwa ein Wildcard-Zertifikat, ein Zertifikat Ihrer internen CA oder ein kommerziell erworbenes Zertifikat.
Diese Seite beschreibt das Zertifikat, mit dem Traefik eingehende HTTPS-Verbindungen der Nutzer absichert. Wenn VARIOS AI ausgehend Dienste mit selbstsignierten Zertifikaten erreichen soll, benötigen Sie stattdessen ein CA-Bundle im Container – siehe Eigene TLS-Zertifikate.
Voraussetzungen
1
Zertifikat und privater Schlüssel im PEM-Format
Traefik benötigt zwei Dateien: die Zertifikatskette (
.crt/.pem) und den privaten Schlüssel (.key). Beide müssen im PEM-Format vorliegen (Textdatei, beginnend mit -----BEGIN CERTIFICATE----- bzw. -----BEGIN PRIVATE KEY-----).2
Vollständige Zertifikatskette
Die Zertifikatsdatei muss das Serverzertifikat und alle Zwischenzertifikate enthalten – zuerst das Serverzertifikat, danach die Intermediates. Ohne die Kette melden Browser und API-Clients einen Zertifikatsfehler.
3
Unverschlüsselter privater Schlüssel
Traefik kann keine passphrasegeschützten Schlüssel entsperren. Der Schlüssel muss ohne Passphrase vorliegen.
4
Passender Common Name bzw. SAN
Das Zertifikat muss auf die Domain aus
PROJECT_DOMAIN in Ihrer .env ausgestellt sein (bzw. diese als Subject Alternative Name enthalten).Wie Traefik an Zertifikate kommt
Traefik kennt zwei Wege, ein Zertifikat für einen Router zu erhalten:
Die mitgelieferte
docker-compose.yml für On-Premise-Installationen ist bereits für beide Wege vorbereitet. Der Traefik-Service startet mit aktiviertem File Provider und bindet die benötigten Verzeichnisse ein:
docker-compose.yml
Einrichtung
1
Zertifikatsdateien ablegen
Legen Sie Zertifikat und Schlüssel im Verzeichnis Schützen Sie den privaten Schlüssel vor unbefugtem Zugriff:
traefik/certs neben Ihrer docker-compose.yml ab:2
Dynamische Konfiguration anlegen
Erstellen Sie die Datei
traefik/dynamic/certificates.yml. Traefik liest sie über den File Provider automatisch ein – die Pfade beziehen sich auf die Pfade im Container (/etc/traefik/certs), nicht auf die Pfade des Hosts.traefik/dynamic/certificates.yml
Der Abschnitt
certificates stellt das Zertifikat für passende Hostnamen bereit. stores.default.defaultCertificate legt es zusätzlich als Standardzertifikat fest – damit antwortet Traefik auch bei Anfragen ohne passenden Hostnamen mit Ihrem Zertifikat statt mit dem generierten Platzhalter TRAEFIK DEFAULT CERT.3
Let's Encrypt am Router abschalten
Entfernen Sie in der Optional können Sie zusätzlich die ACME-Optionen aus dem
docker-compose.yml am php-Service das Label mit dem Certificate Resolver. Das Label tls=true bleibt erhalten – nur die automatische Beschaffung entfällt:docker-compose.yml
command-Block des Traefik-Service entfernen (--certificatesresolvers.le.*), wenn Let’s Encrypt gar nicht mehr genutzt wird.4
Änderungen anwenden
docker compose up -d erledigt das automatisch. Reine Änderungen an den Dateien unterhalb von traefik/dynamic und traefik/certs übernimmt Traefik durch --providers.file.watch=true dagegen ohne Neustart.Prüfen
Prüfen Sie nach dem Start, welches Zertifikat Traefik ausliefert:Ausgegeben werden müssen der Aussteller und die Gültigkeit Ihres Zertifikats. Erscheint stattdessen
TRAEFIK DEFAULT CERT, wurde die dynamische Konfiguration nicht geladen.Zertifikat erneuern
Zum Austausch eines auslaufenden Zertifikats ersetzen Sie lediglich die beiden Dateien:--providers.file.watch=true erkennt Traefik die Änderung in der Regel automatisch. Wird das alte Zertifikat weiterhin ausgeliefert, erzwingen Sie das Neuladen:
Mehrere Domains
Soll VARIOS AI unter mehreren Hostnamen erreichbar sein, ergänzen Sie weitere Einträge untercertificates. Traefik wählt anhand des per SNI übermittelten Hostnamens das passende Zertifikat aus:
traefik/dynamic/certificates.yml
docker-compose.yml
*.example.com) benötigt keine Sonderbehandlung – es wird wie jedes andere Zertifikat eingebunden und gilt für alle passenden Hostnamen.
TLS-Optionen härten
Über den File Provider lassen sich auch die zulässigen TLS-Versionen und Cipher Suites festlegen. Legen Sie dazu eine weitere Datei im selben Verzeichnis an:traefik/dynamic/options.yml
Die Option
default gilt automatisch für alle Router, die keine eigene TLS-Option gesetzt haben. sniStrict: true weist Verbindungen ohne passenden Hostnamen ab – prüfen Sie vorher, dass alle Clients und Monitoring-Systeme SNI verwenden. Die Cipher-Suite-Liste wirkt nur auf TLS 1.2; die Suites von TLS 1.3 sind fest vorgegeben.