Voraussetzungen
- Das CA-Zertifikat liegt im PEM-Format vor (Textdatei, beginnt mit
-----BEGIN CERTIFICATE-----). - Die Datei enthält genau ein Zertifikat.
- Verwenden Sie für den Dateinamen im Container die Endung
.crt.
Konfiguration
Der PHP-Container startet standardmäßig nicht als Root.update-ca-certificates benötigt jedoch Root-Rechte. Passen Sie in Ihrer docker-compose.yml deshalb den PHP-Container wie folgt an und binden Sie das CA-Zertifikat als Volume ein.
Entfernen Sie einen vorhandenen command des PHP-Services. Der Start erfolgt über den angepassten entrypoint.
Der Pfad links vom Doppelpunkt (
./certs/internal-ca.crt) ist der Speicherort des Zertifikats auf dem Host, relativ zur docker-compose.yml. Passen Sie ihn an Ihre Umgebung an.Der Pfad rechts vom Doppelpunkt liegt im Container. Das Verzeichnis /usr/local/share/ca-certificates/ bleibt unabhängig vom Host-Betriebssystem gleich.Anwenden
Speichern Sie diedocker-compose.yml und starten Sie die Container neu:
docker compose up -d php.
Ablauf
Beim Start des PHP-Containers führt der angepasste entrypoint diese Schritte automatisch aus – Sie müssen nichts manuell ausführen:- Das CA-Zertifikat wird vom Host unter
/usr/local/share/ca-certificates/eingebunden. - Der Container startet als Root (
user: "0:0"), damitupdate-ca-certificatesdas Zertifikat in den systemweiten Trust Store übernehmen kann. /scripts/entrypoint.shwechselt auf den Anwendungsbenutzer (PUID/PGID) und startet VARIOS AI über/scripts/run.sh.
Ergebnis
Nach dem Start des Containers:- Das CA-Zertifikat ist im Container verfügbar.
- Das Zertifikat ist im systemweiten Trust Store registriert.
- Anwendungen im Container können TLS-Verbindungen zu Servern herstellen, die mit dieser CA signiert sind.
Typische Anwendungsfälle
- Nutzung einer internen Firmen-CA
- Zugriff auf interne APIs mit selbstsignierten Zertifikaten
- Vertrauensstellung für private Container-Registries oder Package-Repositories
- Ausgehender Datenverkehr über eine Firewall oder einen Proxy mit TLS-Inspection
