]> git.ipfire.org Git - thirdparty/apache/httpd.git/commit
Merge r1877397, r1877795 from trunk:
authorJoe Orton <jorton@apache.org>
Fri, 21 Jun 2024 14:28:25 +0000 (14:28 +0000)
committerJoe Orton <jorton@apache.org>
Fri, 21 Jun 2024 14:28:25 +0000 (14:28 +0000)
commit644fcf5fdb3d49d7d4594dc23e7cd5d65ee3edad
tree5c9a2235f63e3558bea28538716bbbe683a4c9ba
parent440826c28c283ae77130de2b679e3db30af353d0
Merge r1877397, r1877795 from trunk:

mod_ssl: Switch to using SSL_OP_NO_RENEGOTATION (where available) to
block client-initiated renegotiation with TLSv1.2 and earlier.

* modules/ssl/ssl_private.h: Define modssl_reneg_state enum,
  modssl_set_reneg_state function.

* modules/ssl/ssl_engine_io.c (bio_filter_out_write,
  bio_filter_in_read): #ifdef-out reneg protection if
  SSL_OP_NO_RENEGOTATION is defined.

* modules/ssl/ssl_engine_init.c (ssl_init_ctx_protocol):
  Enable SSL_OP_NO_RENEGOTATION.
  (ssl_init_ctx_callbacks): Only enable the "info" callback if
  debug-level logging *or* OpenSSL doesn't support SSL_OP_NO_RENEGOTATION.

* modules/ssl/ssl_engine_kernel.c (ssl_hook_Access_classic): Use
  modssl_set_reneg_state to set the reneg protection mode.
  (ssl_hook_Access_modern): Drop manipulation of the reneg mode which
  does nothing for TLSv1.3 already.
  (ssl_callback_Info): Only enable reneg protection if
  SSL_OP_NO_RENEGOTATION is *not* defined.

* modules/ssl/ssl_util_ssl.c (modssl_set_reneg_state): New function.

mod_ssl: follow up to r1877397: fix SSL_OP_NO_RENEGOT*I*ATION typo.

Should work better now :)

Submitted by: jorton, ylavic
Reviewed by: jorton, ylavic, icing
Github: closes #426

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1918488 13f79535-47bb-0310-9956-ffa450edef68
changes-entries/modssl-no-reneg.txt [new file with mode: 0644]
modules/ssl/ssl_engine_init.c
modules/ssl/ssl_engine_io.c
modules/ssl/ssl_engine_kernel.c
modules/ssl/ssl_private.h
modules/ssl/ssl_util_ssl.c