• Tom Lane's avatar
    Disable prompting for passphrase while (re)loading SSL config files. · 1e942c74
    Tom Lane authored
    OpenSSL's default behavior when loading a passphrase-protected key file
    is to open /dev/tty and demand the password from there.  It was kinda
    sorta okay to allow that to happen at server start, but really that was
    never workable in standard daemon environments.  And it was a complete
    fail on Windows, where the same thing would happen at every backend launch.
    Yesterday's commit de41869b put the final nail in the coffin by causing
    that to happen at every SIGHUP; even if you've still got a terminal acting
    as the server's TTY, having the postmaster freeze until you enter the
    passphrase again isn't acceptable.
    
    Hence, override the default behavior with a callback that returns an empty
    string, ensuring failure.  Change the documentation to say that you can't
    have a passphrase-protected server key, period.
    
    If we can think of a production-grade way of collecting a passphrase from
    somewhere, we might do that once at server startup and use this callback
    to feed it to OpenSSL, but it's far from clear that anyone cares enough
    to invest that much work in the feature.  The lack of complaints about
    the existing fractionally-baked behavior suggests nobody's using it anyway.
    
    Discussion: https://postgr.es/m/29982.1483412575@sss.pgh.pa.us
    1e942c74
be-secure-openssl.c 33.3 KB