mirror of
https://github.com/postgres/postgres.git
synced 2025-05-09 18:21:05 +03:00
Support disallowing SSL renegotiation when using LibreSSL
LibreSSL doesn't support the SSL_OP_NO_RENEGOTIATION macro which is used by OpenSSL, instead it has invented a similar one for client- side renegotiation: SSL_OP_NO_CLIENT_RENEGOTIATION. This has been supported since LibreSSL 2.5.1 which by now can be considered well below the minimum requirement. Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://postgr.es/m/eac70d46-e61c-4d71-a1e1-78e2bfa19485@eisentraut.org
This commit is contained in:
parent
91d6429fad
commit
44e27f0a6d
@ -267,15 +267,20 @@ be_tls_init(bool isServerStart)
|
||||
/* disallow SSL compression */
|
||||
SSL_CTX_set_options(context, SSL_OP_NO_COMPRESSION);
|
||||
|
||||
#ifdef SSL_OP_NO_RENEGOTIATION
|
||||
|
||||
/*
|
||||
* Disallow SSL renegotiation, option available since 1.1.0h. This
|
||||
* concerns only TLSv1.2 and older protocol versions, as TLSv1.3 has no
|
||||
* support for renegotiation.
|
||||
* Disallow SSL renegotiation. This concerns only TLSv1.2 and older
|
||||
* protocol versions, as TLSv1.3 has no support for renegotiation.
|
||||
* SSL_OP_NO_RENEGOTIATION is available in OpenSSL since 1.1.0h (via a
|
||||
* backport from 1.1.1). SSL_OP_NO_CLIENT_RENEGOTIATION is available in
|
||||
* LibreSSL since 2.5.1 disallowing all client-initiated renegotiation
|
||||
* (this is usually on by default).
|
||||
*/
|
||||
#ifdef SSL_OP_NO_RENEGOTIATION
|
||||
SSL_CTX_set_options(context, SSL_OP_NO_RENEGOTIATION);
|
||||
#endif
|
||||
#ifdef SSL_OP_NO_CLIENT_RENEGOTIATION
|
||||
SSL_CTX_set_options(context, SSL_OP_NO_CLIENT_RENEGOTIATION);
|
||||
#endif
|
||||
|
||||
/* set up ephemeral DH and ECDH keys */
|
||||
if (!initialize_dh(context, isServerStart))
|
||||
|
Loading…
x
Reference in New Issue
Block a user