Allow users to pass certs when PG environment variable PGSSLMODE=require/verify-ca/verify-full #2517
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously if
readSSLConfigFromEnvironment
was used to generate the SSL config, the ssl object would not be created to create certs.I ran into this issue when trying to execute yarn tests to a secure cluster (SSLMODE=require), certs would never be read even when I specified
PGSSLCERT, PGSSLKEY, PGSSLROOTCERT
.This fix allows the user to pass in certs through PG env variables.
I'm not great with JS so apologies in advance
Why this is necessary.
To highlight this issue in a simple case
Running the script I attached below through
PGSSLMODE=require PGSSLCERT=/home/ubuntu/certs/client.testuser.crt PGSSLROOTCERT=/home/ubuntu/certs/ca.crt PGSSLKEY=/home/ubuntu/certs/client.testuser.key PGHOST=localhost PGPORT=26257 PGUSER=root node test.js
results in the following error:This is because the ssl field in
ConnectionParameters
is simply set to true and the certs fields are not populated