You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by js...@apache.org on 2026/09/26 07:16:47 UTC
svn commit: r1938528 - in httpd/httpd/branches/2.4.x/docs/manual: misc mod
Author: jsl
Date: Sat Sep 26 07:16:47 2026
New Revision: 1938528
Log:
mod_ssl: Document mod_reqtimeout for TLS handshake timeouts (Bug 70215)
Add a "Connection and Handshake Timeouts" section to mod_ssl explaining
that HTTP-level timeouts such as TimeOut do not cover a client that stalls
during the TLS handshake, and that the handshake stage of mod_reqtimeout's
RequestReadTimeout must be configured to time such connections out.
Cross-reference RequestReadTimeout from the module summary.
Also update the RequestReadTimeout bullet in misc/security_tips.xml to
call out the TLS handshake stage.
No functional change; documentation only.
Backport of r1938527.
Modified:
httpd/httpd/branches/2.4.x/docs/manual/misc/security_tips.xml
httpd/httpd/branches/2.4.x/docs/manual/mod/mod_ssl.xml
Modified: httpd/httpd/branches/2.4.x/docs/manual/misc/security_tips.xml
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/misc/security_tips.xml Sat Sep 26 05:05:36 2026 (r1938527)
+++ httpd/httpd/branches/2.4.x/docs/manual/misc/security_tips.xml Sat Sep 26 07:16:47 2026 (r1938528)
@@ -74,8 +74,10 @@
<ul>
<li>The <directive module="mod_reqtimeout">RequestReadTimeout</directive>
- directive allows to limit the time a client may take to send the
- request.</li>
+ directive allows you to limit the time a client may take to complete
+ the TLS handshake and send the request. In particular, the
+ <code>handshake</code> stage times out clients that stall during the
+ TLS handshake.</li>
<li>The <directive module="core">TimeOut</directive> directive
should be lowered on sites that are subject to DoS attacks.
Modified: httpd/httpd/branches/2.4.x/docs/manual/mod/mod_ssl.xml
==============================================================================
--- httpd/httpd/branches/2.4.x/docs/manual/mod/mod_ssl.xml Sat Sep 26 05:05:36 2026 (r1938527)
+++ httpd/httpd/branches/2.4.x/docs/manual/mod/mod_ssl.xml Sat Sep 26 07:16:47 2026 (r1938528)
@@ -40,6 +40,8 @@ to provide the cryptography engine.</p>
<a href="../ssl/">SSL documentation</a>.</p>
</summary>
+<seealso><directive module="mod_reqtimeout">RequestReadTimeout</directive></seealso>
+
<section id="envvars"><title>Environment Variables</title>
<p>This module can be configured to provide several items of SSL information
@@ -287,6 +289,29 @@ Require valid-user
</section>
+<section id="timeouts"><title>Connection and Handshake Timeouts</title>
+
+<p>A client may open a TLS connection, receive the server certificate, and
+then stall without completing the handshake or sending a request. The
+HTTP-level timeouts, such as <directive module="core">TimeOut</directive>,
+do not reliably cover this situation, so the connection can be held open
+indefinitely.</p>
+
+<p>To limit the time a client may take to complete the TLS handshake, load
+<module>mod_reqtimeout</module> and configure the <code>handshake</code>
+stage of <directive module="mod_reqtimeout">RequestReadTimeout</directive>:</p>
+
+<highlight language="config">
+RequestReadTimeout handshake=5
+</highlight>
+
+<p>The <code>handshake</code> stage is disabled by default and is available
+since httpd 2.4.39. See the
+<directive module="mod_reqtimeout">RequestReadTimeout</directive>
+documentation for details and more examples.</p>
+
+</section>
+
<directivesynopsis>
<name>SSLPassPhraseDialog</name>
<description>Type of pass phrase dialog for encrypted private