Skip to main content
In vielen Unternehmensumgebungen kommen interne Zertifizierungsstellen (CAs) oder selbstsignierte TLS-Zertifikate zum Einsatz – etwa für interne APIs, private Container-Registries oder Package-Repositories. Ebenso nötig ist dies, wenn eine Firewall oder ein Proxy mit TLS-Inspection den ausgehenden Datenverkehr aufbricht und mit einem eigenen Zertifikat neu signiert, etwa auf dem Weg zum Modellanbieter. Damit Anwendungen im VARIOS-AI-Container diese Zertifikate als vertrauenswürdig anerkennen, binden Sie das CA-Zertifikat vom Host in den Container ein. Diese Konfiguration ergänzt den Trust Store des Containers um Ihr CA-Zertifikat. Dadurch kann der Container TLS-Verbindungen zu Servern herstellen, die mit Ihrer internen CA signiert sind.

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.
Liegt das Zertifikat im DER-Format vor (etwa als .cer-Datei), konvertieren Sie es mit openssl x509 -inform der -in internal-ca.cer -out internal-ca.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.
Benötigen Sie mehrere CA-Zertifikate, etwa eine Root- und eine Zwischenzertifizierungsstelle, binden Sie jedes Zertifikat mit einer eigenen Zeile und einem eindeutigen Dateinamen ein:

Anwenden

Speichern Sie die docker-compose.yml und starten Sie die Container neu:
Falls die Container bereits laufen, genügt ein Neustart des PHP-Containers – z. B. 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:
  1. Das CA-Zertifikat wird vom Host unter /usr/local/share/ca-certificates/ eingebunden.
  2. Der Container startet als Root (user: "0:0"), damit update-ca-certificates das Zertifikat in den systemweiten Trust Store übernehmen kann.
  3. /scripts/entrypoint.sh wechselt 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