Eine selbst gehostete App verwendet weiterhin ein altes Geheimnis, wenn der von Ihnen geänderte Wert nicht mit dem Wert übereinstimmt, den der laufende Prozess tatsächlich geladen hat.
Auf einem Heimserver kann dasselbe Passwort, API-Token oder derselbe Verschlüsselungsschlüssel in einer Compose-Umgebung, einer Env-Datei, einer eingebundenen Secret-Datei, einer Verwaltungsoberfläche für Container oder in der eigenen persistenten Datenbank der Anwendung vorhanden sein. Ein Neustart des Prozesses reicht nicht aus, wenn der Container nie neu erstellt wurde, die App die Konfiguration intern speichert oder ein zweiter Dienst weiterhin mit der alten Zugangsdaten authentifiziert wird. Verfolgen Sie das Geheimnis von seiner Quelle bis zum Prozess, bevor Sie Volumes löschen oder es erneut rotieren.
Beweisen, dass der laufende Container weiterhin den alten Wert hat
Ermitteln Sie zunächst einen sicheren Fingerabdruck des Geheimnisses, anstatt das Geheimnis selbst auszugeben. Vergleichen Sie die konfigurierte Quelle, die Umgebung des laufenden Containers oder die eingebundene Secret-Datei sowie das Anwendungsprotokoll oder den Verbindungsfehler, der belegt, welches Zugangsdaten die Anwendung zu verwenden versucht.
Ein Compose-Fehlerbehebungsartikel erklärt, dass ein Neustart die alte Konfiguration beibehält, weil dabei die vorhandene Containerkonfiguration wiederverwendet wird, anstatt eine geänderte Dienstdefinition abzugleichen.
Wenn der laufende Container bereits den neuen Fingerabdruck offenlegt, suchen Sie nicht länger in der Docker-Konfiguration nach der Ursache, sondern prüfen Sie die Persistenz der Anwendung oder den entfernten Dienst, der das Geheimnis validiert. Wenn weiterhin der alte Fingerabdruck angezeigt wird, muss die Reparatur auf der Deployment-Ebene erfolgen.
Nachverfolgen, welche Geheimnisquelle die App tatsächlich liest
Erfassen Sie jede mögliche Quelle für diese Zugangsdaten: Inline-Compose-Umgebung, .env, env_file, eine eingebundene Datei, ein Docker- oder Podman-Secret, eine Anwendungskonfigurationsdatei, die Container-Verwaltungsoberfläche sowie jeden Assistenten für die Ersteinrichtung, der den Wert im persistenten Speicher abgelegt hat.
Ein praxisnaher Leitfaden zur Compose-Konfiguration unterscheidet zwischen eingebundenen Konfigurationen und Secrets. Das ist hilfreich, wenn eine bearbeitete Env-Datei nicht die Quelle ist, aus der die Anwendung derzeit liest.
Ändern Sie nur die Quelle, die für dieses Deployment maßgeblich ist. Wenn Sie drei Kopien gleichzeitig bearbeiten, kann die App zwar erfolgreich starten, aber es bleiben keine Hinweise darauf, welche veraltete Quelle das Problem verursacht hat.
Den Dienst neu erstellen, wenn das Geheimnis Teil der Containerkonfiguration ist
Wenn die Zugangsdaten als Umgebungsvariable des Containers oder als Secret injiziert werden, das erst bei der Erstellung des Containers bereitgestellt wird, erstellen Sie den betroffenen Dienst neu und behalten dabei seine persistenten Volumes bei. Ein einfaches Stoppen und Starten kann die ursprüngliche Containerdefinition unverändert lassen.
Ein Beispiel zur Rotation mit Podman weist darauf hin, dass die Secret-Rotation die Dienste aktualisiert, nachdem ein Secret ersetzt wurde. Damit ist der Lebenszyklus des Containers ein separater Schritt von der Aktualisierung des Secret-Speichers.
Erstellen Sie zunächst nur den Verbraucher-Dienst neu. Entfernen Sie keine benannten Volumes oder Datenbankverzeichnisse, es sei denn, die Anwendung speichert die veralteten Zugangsdaten ausdrücklich dort und Sie verfügen über eine verifizierte Sicherung.
Prüfen, ob persistente Anwendungskonfiguration die Umgebung überschreibt
Manche selbst gehosteten Apps behandeln Umgebungsvariablen als Standardwerte für den ersten Start und speichern anschließend eine bearbeitbare Konfiguration in einer Datenbank oder einem Anwendungsdatenverzeichnis. In diesem Fall kann der neue Umgebungswert korrekt sein, während die App absichtlich weiterhin den gespeicherten Wert verwendet.
Ein Leitfaden zur Fehlerbehebung bei Open WebUI zeigt genau diese Abgrenzung: persistente Konfiguration kann die Umgebung überschreiben, bis die persistierte Einstellung geändert oder dieses Verhalten bewusst deaktiviert wird.
Prüfen Sie die unterstützten Administratoreinstellungen oder die Konfigurationsdatenbank der Anwendung, bevor Sie Dateien manuell bearbeiten. Wenn die Änderung der gespeicherten Einstellung das neue Geheimnis aktiviert, dokumentieren Sie diese Einstellung als maßgebliche Quelle für künftige Rotationen.
Prüfen, ob die App stattdessen eine Secret-Datei lädt
Anwendungen können von einer Umgebungsvariablen auf eine generierte oder eingebundene Secret-Datei zurückfallen. Eine Neuerstellung des Containers kann daher erfolgreich erscheinen, während der Prozess weiterhin eine ältere Datei aus einem persistenten Volume liest.
Ein Beispiel für die Installation von Open WebUI zeigt, wie die App bei späteren Starts eine gespeicherte Secret-Datei lädt. Das verdeutlicht, warum der Pfad der tatsächlich verwendeten Datei unabhängig von der Compose-YAML-Datei geprüft werden muss.
Bestätigen Sie Pfad, Änderungszeit, Eigentümer und sicheren Fingerabdruck der Datei. Ersetzen Sie sie nur über die von der Anwendung unterstützte Methode, da Verschlüsselungsschlüssel und Signaturgeheimnisse Sitzungen ungültig machen oder bereits verschlüsselte Daten unlesbar machen können.
Verbraucher und Anbieter gemeinsam als eine Transaktion rotieren
Ein Datenbankpasswort, API-Token oder Dienstkonto hat zwei Seiten: die App, die es übermittelt, und den Anbieter, der es validiert. Wenn nur eine Seite aktualisiert wird, entsteht ein Authentifizierungsfehler, der fälschlicherweise als Caching eines alten Werts durch die App interpretiert werden kann.
Ein Workflow zur Aktualisierung von Secrets zeigt, dass Anwendungen rotierte Secrets neu laden müssen – durch einen Neustart, ein Signal oder ein anwendungsspezifisches Neuladeverhalten –, statt davon auszugehen, dass der Prozess jede Dateiänderung automatisch bemerkt.
Überprüfen Sie eine echte authentifizierte Aktion, starten Sie den Dienst noch einmal neu oder erstellen Sie ihn neu und testen Sie erneut. Die Reparatur ist abgeschlossen, wenn die neuen Zugangsdaten eine Neuerstellung überstehen und die alten Zugangsdaten abgewiesen werden. Wenn das neue Geheimnis geladen ist, Anfragen aber weiterhin fehlschlagen, ist der zugehörige ZimaSpace-Leitfaden zu einer selbst gehosteten App mit fehlerhaftem API-Pfad der nächste Anhaltspunkt.
Support & Tipps
Mehr zum Lesen

Kann Plex eine GPU mit einem anderen Docker-Container gemeinsam nutzen?
Plex und ein weiterer Container können häufig auf dieselbe GPU zugreifen, aber du musst die Treiberunterstützung, die Gerätezuordnung, die Auslastung der Video-Engine, den Speicher...

So erkennst du, ob ein Plex-Fehler vom Client oder vom Server verursacht wird
Reproduziere dasselbe Element auf einem anderen Client, vergleiche den Sitzungspfad und sammle Serverbelege erst, nachdem der Geltungsbereich dir gezeigt hat, wo der Fehler tatsächlich...

So konfigurierst du den Plex-Cache und den temporären Transcodierungs-Speicher
Schütze den persistenten Plex-Zustand, indem du temporäre Transcodierungsdateien auf geeignetem lokalem Speicher ablegst, und überprüfe anschließend die Bereinigung, den freien Speicherplatz und das Verhalten...

