Zum Hauptinhalt springen
In vielen Unternehmensumgebungen kommen interne Zertifizierungsstellen (CAs) oder selbstsignierte TLS-Zertifikate zum Einsatz – etwa für interne APIs, private Container-Registries oder Package-Repositories. Damit Anwendungen im VARIOS-AI-Container diese Zertifikate als vertrauenswürdig anerkennen, können Sie ein benutzerdefiniertes CA-Zertifikatsbundle vom Host in den Container einbinden. Diese Konfiguration sorgt dafür, dass der Container zusätzliche bzw. angepasste CA-Zertifikate verwendet und TLS-Verbindungen zu Servern herstellen kann, die mit Ihren internen CAs signiert sind.

Konfiguration

Ergänzen Sie in Ihrer docker-compose.yml den command des PHP-Containers und binden Sie das Zertifikatsbundle als Volume ein:
# docker-compose.yml

php:
  [...]
  command: sh -c "/usr/sbin/update-ca-certificates 2>/dev/null || true; /scripts/run.sh"
  volumes:
    [...]
    - "/etc/pki/tls/certs/ca-bundle.crt:/usr/local/share/ca-certificates/ca-bundle.crt:ro"
Der Beispielpfad /etc/pki/tls/certs/ca-bundle.crt entspricht typischen RHEL/CentOS-Systemen. Unter Debian/Ubuntu liegt das System-CA-Bundle oft unter /etc/ssl/certs/ca-certificates.crt. Passen Sie den Host-Pfad an Ihre Distribution an.

Ablauf

1. Einbinden des Zertifikats

- "/etc/pki/tls/certs/ca-bundle.crt:/usr/local/share/ca-certificates/ca-bundle.crt:ro"
  • Das Zertifikatsbundle vom Host-System wird in den Container gemountet.
  • Zielpfad im Container: /usr/local/share/ca-certificates/ca-bundle.crt
  • Das Volume wird read-only (ro) eingebunden – der Container kann die Datei nicht verändern.
Dieser Pfad wird von vielen Linux-Distributionen als Quelle für zusätzliche CA-Zertifikate verwendet.

2. Aktualisieren der Zertifikatsdatenbank

/usr/sbin/update-ca-certificates
  • Das Kommando durchsucht das Verzeichnis /usr/local/share/ca-certificates.
  • Gefundene Zertifikate werden in den systemweiten Trust Store übernommen.
  • Anwendungen im Container (z. B. PHP, curl, Composer, OpenSSL) können diese CAs anschließend für TLS-Verbindungen nutzen.

3. Start des Container-Skripts

/scripts/run.sh
  • Nach der Aktualisierung der Zertifikate wird das normale Startskript des Containers ausgeführt.

Ergebnis

Nach dem Start des Containers:
  • Das CA-Bundle des Hosts ist im Container verfügbar.
  • Die Zertifikate sind im systemweiten Trust Store registriert.
  • Anwendungen im Container können TLS-Verbindungen zu Servern herstellen, die mit diesen CAs 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