Re: Adding support for SSLKEYLOGFILE in the frontend

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Tom Lane <tgl@sss.pgh.pa.us>, Jacob Champion <jacob.champion@enterprisedb.com>
Cc: Daniel Gustafsson <daniel@yesql.se>, Abhishek Chanda <abhishek.becs@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-03-14T14:27:31Z
Lists: pgsql-hackers
On 13.03.25 19:31, Tom Lane wrote:
> Jacob Champion <jacob.champion@enterprisedb.com> writes:
>> Adding the PG prefix to the envvar name addresses my collision
>> concern, but I think Tom's comment upthread [1] was saying that we
>> should not provide any envvar at all:
> 
>>> I think it might be safer if we only accepted it as a connection
>>> parameter and not via an environment variable.
> 
>> Is the addition of the PG prefix enough to address that concern too?
> 
> Indeed, I was advocating for *no* environment variable.  The PG prefix
> does not comfort me.

It seems to me that the environment variable would be the most useful 
way to use this feature, for example if you want to debug an existing 
program that you can't or don't want to change.

As was mentioned earlier, libcurl uses an environment variable for this. 
  Moreover, the format originated in the NSS library, which also uses an 
environment variable.

So we are here constructing a higher level of security that others don't 
seem to have found the need for.

It's also possible that we should consider the SSLKEYLOGFILE environment 
variable some kind of quasi-standard like PAGER, and we should be using 
exactly that environment variable name like everyone else.




Commits

  1. Fix sslkeylogfile error handling logging

  2. Mark sslkeylogfile as Debug option

  3. libpq: Add support for dumping SSL key material to file