Configuration
In yourdocker-compose.yml, extend the PHP container command and mount the certificate bundle as a volume:
The example path
/etc/pki/tls/certs/ca-bundle.crt is typical for RHEL/CentOS systems. On Debian/Ubuntu, the system CA bundle is often at /etc/ssl/certs/ca-certificates.crt. Adjust the host path to match your distribution.How It Works
1. Mounting the certificate
- The certificate bundle from the host system is mounted into the container.
- Target path in the container:
/usr/local/share/ca-certificates/ca-bundle.crt - The volume is mounted read-only (
ro) so the container cannot modify the file.
2. Updating the certificate store
- This command scans the directory
/usr/local/share/ca-certificates. - Found certificates are added to the system-wide trust store.
- Applications in the container (e.g. PHP, curl, Composer, OpenSSL) can then use these CAs for TLS connections.
3. Starting the container script
- After updating the certificates, the container’s normal startup script is executed.
Result
After the container starts:- The host’s CA bundle is available inside the container.
- The certificates are registered in the system-wide trust store.
- Applications in the container can establish TLS connections to servers signed by these CAs.
Typical Use Cases
- Using an internal corporate CA
- Accessing internal APIs with self-signed certificates
- Trust for private container registries or package repositories
