docker-library / docker-library/postgres

`sslrootcert=system` is broken, requires installing `ca-certificates` package

Open
#1,331 10 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.