Verschlüsseln Sie die ganze Datei lokal mit dem AES-256-GCM-Verschlüsseler. Einfügen, mit Passphrase verschlüsseln, nur den Chiffretext speichern.
Die .env-Datei, die nie hätte committet werden dürfen
Jede Entwicklerin kennt das: ein Repository mit einer .env-Datei, die Datenbank-Zugangsdaten, API-Keys und ein Produktions-Secret enthält – für immer in der Git-Historie.
Git-Historie ist ein dauerhaftes Protokoll. Die Datei heute zu löschen entfernt sie nicht aus vergangenen Commits; jeder Clone, Fork oder CI-Cache kann sie weiterhin enthalten. Angreifer scannen öffentliche Repositories gezielt nach genau solchen Dateien.
Die Lösung beginnt, bevor die Datei entsteht: Committen Sie Secrets niemals im Klartext. Verschlüsselung ist der Notfallweg für Fälle, in denen eine Kopie überhaupt im Repository liegen muss.
Die besseren Optionen vor der Verschlüsselung
- gitignore – fügen Sie .env und .env.* hinzu und stagen Sie sie nie
- Umgebungsvariablen, die Ihr Host, CI oder Ihre Deployment-Plattform injiziert
- Ein Secret-Manager für Produktionswerte mit Injektion zur Laufzeit
- Nur nicht-sensitive Standardwerte in einer committeten .env.example mit Platzhaltern
Hinweis: Verschlüsselung ist keine Lizenz, Secrets nachlässig zu committen. Sie ist das Muster der letzten Wahl für Teams, die wirklich eine geteilte, versionierte Kopie der Konfiguration brauchen – etwa Offline-Setups oder kleine Teams ohne Secret-Manager.
Warum AES-256-GCM für Umgebungsdateien
AES-256-GCM ist ein authentifizierter Verschlüsselungsmodus: Er liefert Vertraulichkeit und erkennt jede Manipulation am Chiffretext. Wird die Datei im Repository verändert, schlägt die Entschlüsselung fehl, statt stillschweigend korrupte Werte zu liefern.
Da .env-Dateien meist kleiner Text sind, ist die Verschlüsselung als einzelnes Dokument mit Passphrase praktikabel. Die Passphrase wird mit PBKDF2 gestreckt, sodass eine schwache Passphrase dem Angreifer echte Rechenkosten pro Versuch abverlangt.
Alles kann im Browser mit der Web Crypto API geschehen – der Klartext muss nie einen Server erreichen, genau das verlangt ein Zero-Knowledge-Workflow.
Eine .env-Datei vor dem Commit verschlüsseln
- Öffnen Sie den AES-256-GCM-Verschlüsseler.
- Wechseln Sie in den Dateimodus und wählen Sie Ihre .env-Datei, oder fügen Sie den Inhalt in das Textfeld ein.
- Wählen Sie passwortbasierte Verschlüsselung und vergeben Sie eine starke Passphrase – mindestens 12 zufällige Zeichen, idealerweise eine Phrase aus vier oder mehr Wörtern.
- Verschlüsseln Sie und speichern Sie die Ausgabe als .env.enc (oder env.enc).
- Entfernen Sie die Klartextdatei aus dem Arbeitsverzeichnis und committen Sie nur den Chiffretext, plus eine env.example, die die Variablennamen ohne Werte dokumentiert.
- Teilen Sie die Passphrase über einen Kanal außerhalb des Repositories – einen Passwort-Manager, nicht eine Chat-Nachricht oder einen PR-Kommentar.
Warnung: Es gibt keine Wiederherstellung, wenn die Passphrase verloren geht, und keine Sicherheit, wenn sie leakt. Speichern Sie sie im Team-Passwort-Manager, rotieren Sie sie beim Ausscheiden von Mitgliedern und behandeln Sie den Chiffretext als nur so stark wie die Passphrase.
Entschlüsseln, wenn ein Teammitglied das Repository zieht
- Repository abrufen und den AES-256-GCM-Verschlüsseler öffnen.
- Die .env.enc-Datei auswählen.
- Die geteilte Passphrase eingeben und entschlüsseln.
- Die Werte in die lokale Umgebung übernehmen oder die Klartextdatei lokal speichern – und sicherstellen, dass Git sie ignoriert.
Rotation und Incident Response
Verschlüsselung reduziert die Exposition, aber wenn je eine .env im Klartext committet wurde, gehen Sie davon aus, dass jedes Secret darin kompromittiert ist, und rotieren Sie – auch wenn Sie die Datei später entfernen oder verschlüsseln.
Verlässt ein Teammitglied, das die Passphrase kennt, das Team, rotieren Sie die Passphrase und verschlüsseln die Datei neu. Besser: Rotieren Sie die Secrets selbst, damit der alte Chiffretext wertlos wird.
Ergänzen Sie einen CI-Check, der fehlschlägt, wenn eine Klartext-.env in einem Diff auftaucht. Ein paar Zeilen Skript sind billiger als die Aufräumarbeit nach einem Leak.
FAQ
Q.Reicht es, die .env-Datei zu verschlüsseln?
A.Es schützt den Dateiinhalt im Repository, behebt aber keine schwachen Passphrasen, Schlüssel-Sharing-Fehler oder Secrets, die bereits im Klartext geleakt sind. Kombinieren Sie Verschlüsselung mit gitignore, Secret-Managern und Rotation.
Q.Kann ich nur ein Secret verschlüsseln?
A.Ja – verschlüsseln Sie einzelne Werte und speichern Sie sie als Umgebungsvariable wie API_KEY=$(decrypt ...). Ganzdatei-Verschlüsselung ist für kleine Konfigurationen einfacher; wertweise Verschlüsselung bietet feinere Kontrolle und ähnelt Secret-Managern.
Q.Was passiert, wenn die Passphrase verloren geht?
A.Der Chiffretext ist nicht wiederherstellbar. AES-256-GCM hat keine Hintertür. Bewahren Sie die Passphrase im Team-Passwort-Manager auf und behandeln Sie Verlust als Prozessereignis, nicht als Wiederherstellungsproblem.
Q.Ich habe bereits eine .env im Klartext committet. Was nun?
A.Rotieren Sie sofort jedes Secret in dieser Datei – Historie und Clones enthalten sie weiterhin. Fügen Sie sie dann zu .gitignore hinzu, verschlüsseln Sie künftige Kopien und erwägen Sie Historie-Umschreiben nur bei sehr kleinen privaten Repositories mit klarem Verständnis der Folgen.
Q.Ist es sicher, meine .env in einem Browser-Werkzeug zu verschlüsseln?
A.Nur wenn das Werkzeug wirklich clientseitig ist. Der Verschlüsseler dieser Seite läuft vollständig im Browser mit der Web Crypto API – nichts wird hochgeladen. Prüfen Sie dieselbe Eigenschaft für jedes Werkzeug: Verschlüsselung lokal und keine Netzwerkanfrage mit Ihren Daten.
Referenzen
- NIST SP 800-38D – Galois/Counter Mode (GCM): https://csrc.nist.gov/pubs/sp/800/38/d/final
- RFC 5116 – Authentifizierte Verschlüsselung: https://www.rfc-editor.org/rfc/rfc5116
- NIST SP 800-132 – Passwortbasierte Schlüsselableitung (PBKDF2): https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf
- OWASP Secrets Management Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html
Ihre Umgebungsdatei verschlüsseln
AES-256-GCM mit Passphrase, vollständig clientseitig. Kein Upload, kein Konto.
Erst verschlüsseln – oder besser gar nicht committen
Secrets in Git sind eine dauerhafte Haftung. Bevorzugen Sie gitignore und Secret-Manager; ist eine versionierte Kopie unvermeidbar, verschlüsseln Sie die Datei lokal mit einer starken Passphrase und committen Sie nur den Chiffretext.
Verschlüsseln und entschlüsseln Sie .env-Dateien im Browser mit dem AES-256-GCM-Verschlüsseler – nichts verlässt Ihr Gerät.