docker-library / docker-library/postgres
`sslrootcert=system` is broken, requires installing `ca-certificates` package
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 2.5k
- Forks
- 1.2k
- PR merge metrics
- No merged PRs in 30d
Description
Since Postgres 16, the sslrootcert=system connection parameter turns on sslmode=verify-full and instructs psql to use the system CA cert store. This is a lot more secure than sslmode=require and works very nicely for people with Postgres providers who use public CAs to secure their databases.
Unfortunately, sslrootcert=system currently doesn't work on the psql binaries shipped in these Docker images:
# psql 'postgresql://user:pass@ep-broad-dew-xyz.us-east-2.aws.neon.tech/neondb?sslrootcert=system'
psql: error: connection to server at "ep-broad-dew-xyz.us-east-2.aws.neon.tech" (3.x.x.x), port 5432 failed: SSL error: certificate verify failed
Fortunately, the fix is simple: apt-get update && apt-get install ca-certificates does the trick. It's also simple to test the fix using a free-tier Neon DB.
Would you be able to update all images from 16.x up to come with the ca-certificates package installed, to make this work?
I'm maintaining a list of psql distributions that do and don't work here: https://gist.github.com/jawj/57bc9d1f350ffd5250942cf24957b3a7
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting the Docker image definitions for PostgreSQL 16.x and reproduce the reported psql connection against a free-tier Neon database. Update the relevant image definitions so ca-certificates is installed, then verify that sslrootcert=system succeeds for the affected images.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, postgresql, shell
- Domain
- databases, devops, infrastructure
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100