Konfiguration
Ergänzen Sie in Ihrerdocker-compose.yml den command des PHP-Containers und binden Sie das Zertifikatsbundle als Volume ein:
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
- 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.
2. Aktualisieren der Zertifikatsdatenbank
- 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
- 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
