Enable SSL in PostgreSQL Docker

I'll keep this short.

In official docker image, there's already built-in SSL keys ready. We just need to tell Postgres to use it by adding the following section into the docker-compose file:

image: postgres:xxx
...
command: >
    -c ssl=on 
    -c ssl_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    -c ssl_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

If you are using CapRover, adding the above lines won't work. You will have to use a custom Dockerfile instead. For example:

FROM postgres:14
CMD ["postgres", "-c", "ssl=on", "-c", "ssl_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem", "-c", "ssl_key_file=/etc/ssl/private/ssl-cert-snakeoil.key" ]

The easiest way would be: pasting the above dockerfile into Deployment > Method 4 section of your Postgres app and deploy it.

Show Comments