mirror of
https://github.com/apache/httpd.git
synced 2025-04-18 22:24:07 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1921879 13f79535-47bb-0310-9956-ffa450edef68
2252 lines
106 KiB
Plaintext
2252 lines
106 KiB
Plaintext
-*- coding: utf-8 -*-
|
|
Changes with Apache 2.5.1
|
|
|
|
*) mod_http2: improved early cleanup of streams.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy_fcgi: Don't re-encode SCRIPT_FILENAME when set via SetHandler.
|
|
PR 69203. [Yann Ylavic]
|
|
|
|
*) mod_proxy_http2: improved error handling on connection errors while
|
|
response is already underway.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy: Fix canonicalisation and FCGI env (PATH_INFO, SCRIPT_NAME) for
|
|
"balancer:" URLs set via SetHandler, also allowing for "unix:" sockets
|
|
with BalancerMember(s). PR 69168. [Yann Ylavic]
|
|
|
|
*) mod_rewrite: Better question mark tracking to avoid UnsafeAllow3F.
|
|
PR 69197. [Yann Ylavic, Eric Covener]
|
|
|
|
*) mod_tls: update version of rustls-ffi to v0.13.0.
|
|
[Daniel McCarney (@cpu}]
|
|
|
|
*) mod_xml2enc: Tolerate libxml2 2.12.0 and later.
|
|
[ttachi <tachihara AT hotmail.com>]
|
|
|
|
*) mod_alias: Add AliasPreservePath directive to map the full
|
|
path after the alias in a location. [Graham Leggett]
|
|
|
|
*) mod_rewrite, mod_proxy: mod_proxy to canonicalize rewritten [P] URLs,
|
|
including "unix:" ones. PR 69235, PR 69260. [Yann Ylavic, Ruediger Pluem]
|
|
|
|
*) mod_http2: fixed a bug that could lead to a crash in main connection
|
|
output handling. This occured only when the last request on a HTTP/2
|
|
connection had been processed and the session decided to shut down.
|
|
This could lead to an attempt to send a final GOAWAY while the previous
|
|
write was still in progress. See PR 66646.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy_http2: fix `X-Forward-Host` header to carry the correct value.
|
|
Fixed PR66752.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_http2: added support for bootstrapping WebSockets via HTTP/2, as
|
|
described in RFC 8441. A new directive 'H2WebSockets on|off' has been
|
|
added. The feature is by default not enabled.
|
|
As also discussed in the manual, this feature should work for setups
|
|
using "ProxyPass backend-url upgrade=websocket" without further changes.
|
|
Special server modules for WebSockets will have to be adapted,
|
|
most likely, as the handling if IO events is different with HTTP/2.
|
|
HTTP/2 WebSockets are supported on platforms with native pipes. This
|
|
excludes Windows.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy: Fix DNS requests and connections closed before the
|
|
configured addressTTL. BZ 69126. [Yann Ylavic]
|
|
|
|
*) apxs: Fix -i in some cases where -n is not used.
|
|
[Jan Pazdziora <jpazdziora redhat.com>]
|
|
|
|
*) worker, event: Avoid possible hangs and crashes during shutdown of
|
|
child processes that fail to start their configured threads.
|
|
[Yann Ylavic, Eric Covener]
|
|
|
|
*) mod_ssl: Restore support for loading PKCS#11 keys via ENGINE
|
|
without "SSLCryptoDevice" configured. [Joe Orton]
|
|
|
|
*) mod_rewrite: Fix a recent regression where a rule with both a trailing
|
|
'?' and the [QSA] flag did not have the query appended. PR66672
|
|
Frank Meier <frank.meier ergon.ch>
|
|
|
|
*) core: On Linux, log the real thread ID in error logs. [Joe Orton]
|
|
|
|
*) mod_http2: fixed a bug in flushing pending data on an already closed
|
|
connection that could lead to a busy loop, preventing the HTTP/2 session
|
|
to close down successfully. Fixed PR 66624.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_http2: v2.0.15 with the following fixes and improvements
|
|
- New directive 'H2EarlyHint name value' to add headers to a response,
|
|
picked up already when a "103 Early Hints" response is sent. 'name' and
|
|
'value' must comply to the HTTP field restrictions.
|
|
This directive can be repeated several times and header fields of the
|
|
same names add. Sending a 'Link' header with 'preload' relation will
|
|
also cause a HTTP/2 PUSH if enabled and supported by the client.
|
|
- Fixed an issue where requests were not logged and accounted in a timely
|
|
fashion when the connection returns to "keepalive" handling, e.g. when
|
|
the request served was the last outstanding one.
|
|
This led to late appearance in access logs with wrong duration times
|
|
reported.
|
|
- Accurately report the bytes sent for a request in the '%O' Log format.
|
|
This addresses #203, a long outstanding issue where mod_h2 has reported
|
|
numbers over-eagerly from internal buffering and not what has actually
|
|
been placed on the connection.
|
|
The numbers are now the same with and without H2CopyFiles enabled.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md:
|
|
- Using OCSP stapling information to trigger certificate renewals. Proposed
|
|
by @frasertweedale.
|
|
- Added directive `MDCheckInterval` to control how often the server checks
|
|
for detected revocations. Added proposals for configurations in the
|
|
README.md chapter "Revocations".
|
|
- OCSP stapling: accept OCSP responses without a `nextUpdate` entry which is
|
|
allowed in RFC 6960. Treat those as having an update interval of 12 hours.
|
|
Added by @frasertweedale.
|
|
- Adapt OpenSSL usage to changes in their API. By Yann Ylavic.
|
|
|
|
*) mod_proxy_http2: fix retry handling to not leak temporary errors.
|
|
On detecting that that an existing connection was shutdown by the other
|
|
side, a 503 response leaked even though the request was retried on a
|
|
fresh connection.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_rewrite: Add server directory to include path as mod_rewrite requires
|
|
test_char.h. PR 66571 [Valeria Petrov <valeria.petrov@spinetix.com>]
|
|
|
|
*) Add an option to specify a source address. PR32524
|
|
[Daniel Rench <gauze omnimental tmetic com>]
|
|
|
|
*) http/1.1: For a chunked response body, ensure the last-chunk
|
|
terminator is flushed if necessary. [Joe Orton]
|
|
|
|
*) mod_rewrite: Don't require [UNC] flag to preserve a leading //
|
|
added by applying the perdir prefix to the substitution.
|
|
[Ruediger Pluem, Eric Covener]
|
|
|
|
*) mod_http2: new directive `H2ProxyRequests on|off` to enable handling
|
|
of HTTP/2 requests in a forward proxy configuration.
|
|
General forward proxying is enabled via `ProxyRequests`. If the
|
|
HTTP/2 protocol is also enabled for such a server/host, this new
|
|
directive is needed in addition.
|
|
[Stefan Eissing]
|
|
|
|
*) core: add `final_resp_passed` flag to request_rec to allow
|
|
ap_die() to judge if it can send out a response. Bump mmn.
|
|
Enable test cases that check errors during response body to
|
|
appear as error on client side.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_ldap: HTML-escape data in the ldap-status handler.
|
|
[Eric Covener, Chamal De Silva]
|
|
|
|
*) htcacheclean: In -a/-A mode, list all files per subdirectory
|
|
rather than only one. PR 65091.
|
|
[Artem Egorenkov <aegorenkov.91 gmail.com>]
|
|
|
|
*) mod_proxy: In case that AllowEncodedSlashes is set to NoDecode do not
|
|
fail on literal '%' when doing the encoding of the backend URL.
|
|
PR 66580 [Ruediger Pluem]
|
|
|
|
*) mpm_worker: Fix possible warning (AH00045) about children processes not
|
|
terminating timely. [Yann Ylavic]
|
|
|
|
* mod_proxy_http2: fixed using the wrong "bucket_alloc" from the backend
|
|
connection when sending data on the frontend one. This caused crashes
|
|
or infinite loops in rare situations.
|
|
* mod_proxy_http2: fixed a bug in retry/response handling that could lead
|
|
to wrong status codes or HTTP messages send at the end of response bodies
|
|
exceeding the announced content-length.
|
|
* mod_proxy_http2: fix retry handling to not leak temporary errors.
|
|
On detecting that that an existing connection was shutdown by the other
|
|
side, a 503 response leaked even though the request was retried on a
|
|
fresh connection.
|
|
* mod_http2: fixed a bug that did cleanup of consumed and pending buckets in
|
|
the wrong order when a bucket_beam was destroyed.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_ssl: Add support for loading certs/keys from pkcs11: URIs
|
|
via OpenSSL 3.x providers. [Ingo Franzki <ifranzki linux.ibm.com>]
|
|
|
|
*) mod_proxy: Allow to set a TTL for how long DNS resolutions to backend
|
|
systems are cached. [Yann Ylavic]
|
|
|
|
*) mod_http2: v2.0.26 with the following fixes:
|
|
- Fixed `Date` header on requests upgraded from HTTP/1.1 (h2c). Fixes
|
|
<https://github.com/icing/mod_h2/issues/272>.
|
|
- Fixed small memory leak in h2 header bucket free. Thanks to
|
|
Michael Kaufmann for finding this and providing the fix.
|
|
|
|
*) mod_ssl: Restore SSL dumping on trace7 loglevel with OpenSSL >= 3.0.
|
|
[Ruediger Pluem, Yann Ylavic]
|
|
|
|
*) mod_http2: avoid double chunked-encoding on internal redirects.
|
|
PR 66597 [Yann Ylavic, Stefan Eissing]
|
|
|
|
*) mod_cgi/mod_cgid: Reject CGI output with a Transfer-Encoding
|
|
header to avoid unexpected or corrupted responses. PR 68970.
|
|
[Joe Orton]
|
|
|
|
*) Windows: Restore the ability to "Include" configuration files on UNC
|
|
paths. PR69313 [Eric Covener]
|
|
|
|
*) mod_http2: Fix reporting of `Total Accesses` in server-status to not count
|
|
HTTP/2 requests twice. Fixes PR 66801.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_slotmem_shm: Use ap_os_is_path_absolute() to make it portable.
|
|
[Jean-Frederic Clere]
|
|
|
|
*) Optimise handling LDAP authorization where LDAP was not used
|
|
previously for LDAP authentication. [Yann Ylavic]
|
|
|
|
*) mod_macro: Return an error if the expanded line would exceed the
|
|
maximum line length. PR 69258.
|
|
[Marc Stern <marc.stern approach-cyber.com>]
|
|
|
|
* mod_http2: fixed a bug in handling of stream timeouts.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_systemd: Log the SELinux context at startup if available and
|
|
enabled. [Joe Orton]
|
|
|
|
*) mod_proxy: Avoid AH01059 parsing error for SetHandler "unix:" URLs.
|
|
PR 69160 [Yann Ylavic]
|
|
|
|
*) mod_dav_fs: Add DavLockDBType directive. [Joe Orton]
|
|
|
|
*) mod_ssl: Disable the OpenSSL ENGINE API when OPENSSL_NO_ENGINE is set.
|
|
Allow for "SSLCryptoDevice builtin" if the ENGINE API is not available,
|
|
notably with OpenSSL >= 3. PR 68080. [Yann Ylavic, Joe Orton]
|
|
|
|
*) mod_headers: Fix a possible infinite recursion with the edit* action and
|
|
empty matches. [Yann Ylavic]
|
|
|
|
*) mod_tls: updating to rustls-ffi version 0.9.2 or higher.
|
|
Checking in configure for proper version installed. Code
|
|
fixes for changed clienthello member name.
|
|
[Stefan Eissing]
|
|
|
|
* mod_md:
|
|
- New directive `MDMatchNames all|servernames` to allow more control over how
|
|
MDomains are matched to VirtualHosts.
|
|
- New directive `MDChallengeDns01Version`. Setting this to `2` will provide
|
|
the command also with the challenge value on `teardown` invocation. In version
|
|
1, the default, only the `setup` invocation gets this parameter.
|
|
Refs #312. Thanks to @domrim for the idea.
|
|
- For Managed Domain in "manual" mode, the checks if all used ServerName and
|
|
ServerAlias are part of the MDomain now reports a warning instead of an error
|
|
(AH10040) when not all names are present.
|
|
- MDChallengeDns01 can now be configured for individual domains.
|
|
Using PR from Jérôme Billiras (@bilhackmac) and adding test case and fixing proper working
|
|
- Fixed a bug found by Jérôme Billiras (@bilhackmac) that caused the challenge
|
|
teardown not being invoked as it should.
|
|
|
|
*) mod_ssl: Fix a regression that causes the default DH parameters for a key
|
|
no longer set and thus effectively disabling DH ciphers when no explicit
|
|
DH parameters are set. PR 68863 [Ruediger Pluem]
|
|
|
|
*) mod_dav: Update redirect-carefully example BrowserMatch config
|
|
to match more recent client versions. PR 66148, 67039.
|
|
[Michal Maloszewski <michal.maloszewski canonical.com>,
|
|
Romain Tartière <romain blogreen.org>]
|
|
|
|
*) mod_proxy: Avoid AH01059 parsing error for SetHandler "unix:" URLs
|
|
in <Location> (incomplete fix in 2.4.62). PR 69160. [Yann Ylavic]
|
|
|
|
*) mod_ssl: Add SSL_HANDSHAKE_RTT environment variable.
|
|
[Charles Smutz <csmutz gmail.com>]
|
|
|
|
*) mod_md: fixed passing of the server environment variables to programs
|
|
started via MDMessageCmd and MDChallengeDns01 on *nix system.
|
|
See <https://github.com/icing/mod_md/issues/319>.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy: Honor parameters of ProxyPassMatch workers with substitution
|
|
in the host name or port. PR 69233. [Yann Ylavic]
|
|
|
|
*) mod_md: Fix the reported "until" validity of a certificate in the status
|
|
handler. [Rainer Jung]
|
|
|
|
*) mod_md: Fix possible NULL deref when logging the error that an
|
|
authentication resource could not be retrieved from the ACME server.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_ssl: Improve compatibility with OpenSSL 3, fix build warnings about
|
|
deprecated ENGINE_ API, honor OPENSSL_API_COMPAT setting while defaulting
|
|
to compatibitily with version 1.1.1 (including ENGINEs / SSLCryptoDevice).
|
|
[Yann Ylavic]
|
|
|
|
*) core: Add "multipathtcp" Listen option. PR 69292.
|
|
[Anthony Doeraene <anthony.doeraene hotmail.com>]
|
|
|
|
*) mod_proxy: Add "multipathtcp" worker parameter. PR 69292.
|
|
[Anthony Doeraene <anthony.doeraene hotmail.com>]
|
|
|
|
*) mod_authnz_ldap.c: Make sure the authentication variables are set in
|
|
all cases where another module is the source of the authentication,
|
|
and that authenticated user is looked up in LDAP. [Graham Leggett]
|
|
|
|
*) mod_autht_jwt: New module to handle RFC 7519 JWT tokens within
|
|
bearer tokens, both as part of the aaa framework, and as a way to
|
|
generate tokens and pass them to backend servers and services.
|
|
[Graham Leggett]
|
|
|
|
*) mod_auth_bearer: New module to handle RFC 6750 Bearer tokens, using
|
|
the token_checker hook. [Graham Leggett]
|
|
|
|
*) mod_autht_core: New module to handle provider aliases for token
|
|
authentication. [Graham Leggett]
|
|
|
|
*) core: Add the token_checker hook, that allows authentication to take
|
|
place using mechanisms other than username/password, such as bearer
|
|
tokens. [Graham Leggett]
|
|
|
|
*) mod_alias: When an alias is declared inside a Location, make sure
|
|
the balance of the URL is preserved to match the alias declared
|
|
outside a location. Fixes an error where all requests are mapped
|
|
to the root of the location. [Graham Leggett]
|
|
|
|
*) core: Be explicit if an enclosing directive contains a path or a
|
|
regex. [Graham Leggett]
|
|
|
|
*) mod_http2: fixed a crash during connection termination. See PR 66539.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_mime: Do not match the extention against possible query string
|
|
parameters in case ProxyPass was used with the nocanon option.
|
|
[Ruediger Pluem]
|
|
|
|
*) mod_proxy: In case that AllowEncodedSlashes is set to NoDecode do not
|
|
double encode encoded slashes in the URL sent by the reverse proxy to the
|
|
backend. [Ruediger Pluem]
|
|
|
|
*) mod_rewrite: Add BCTLS flag similar to B, but only escaping the characters
|
|
checked by 2.4.56 in the query string. [Eric Covener]
|
|
|
|
*) mod_md:
|
|
- Enabling ED25519 support and certificate transparency information when
|
|
building with libressl v3.5.0 and newer. Thanks to Giovanni Bechis.
|
|
- MDChallengeDns01 can now be configured for individual domains.
|
|
Thanks to Jérôme Billiras (@bilhackmac) for the initial PR.
|
|
- Fixed a bug found by Jérôme Billiras (@bilhackmac) that caused the challenge
|
|
teardown not being invoked as it should.
|
|
[Stefan Eissing]
|
|
|
|
*) core: Add formats %{z} and %{strftime-format} to ErrorLogFormat, and make
|
|
sure that if the format is configured early enough it applies to every log
|
|
line. PR 62161. [Yann Ylavic]
|
|
|
|
*) mod_proxy: Check before forwarding that a nocanon path has not been
|
|
rewritten with spaces during processing. [Yann Ylavic]
|
|
|
|
*) mod_rewrite: Re-allow some proxy and redirect substitutions flagged as
|
|
403 errors in 2.4.56. [Eric Covener]
|
|
|
|
*) mod_rewrite: Fix a 2.4.56 regression for substitutions ending
|
|
in a question mark. [Eric Covener]
|
|
|
|
*) Add a SSL_SHARED_CIPHER environment variable with the list of
|
|
client/server permitted ciphers. [Dirk-Willem van Gulik]
|
|
|
|
*) mod_http2: field values (headers and trailers) are stripped of
|
|
leading/trailing whitespace (space +htab) before being processed
|
|
or send in a response. This is compatible behaviour to HTTP/1.1
|
|
parsers that strip incoming headers of such characters.
|
|
[Stefan Eissing]
|
|
|
|
*) build: Use 'command -v' instead of 'which' which is more portable.
|
|
PR 66130 [Sam James <sam@gentoo.org>]
|
|
|
|
*) mod_dav: Allow to disable lock discovery via an DAVLockDiscovery
|
|
expression (per-request). PR 66313. [Emmanuel Dreyfus <manu netbsd.org>]
|
|
|
|
*) mod_ssl: when a proxy connection had handled a request using SSL, an
|
|
error was logged when "SSLProxyEngine" was only configured in the
|
|
location/proxy section and not the overall server. The connection
|
|
continued to work, the error log was in error. Fixed PR66190.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy: Ignore (and warn about) enablereuse=on for ProxyPassMatch when
|
|
some dollar substitution (backreference) happens in the hostname or port
|
|
part of the URL. [Yann Ylavic]
|
|
|
|
*) rotatelogs: Add -T flag to allow subsequent rotated logfiles to be
|
|
truncated without the initial logfile being truncated. [Eric Covener]
|
|
|
|
*) mod_md: a new directive `MDStoreLocks` can be used on cluster
|
|
setups with a shared file system for `MDStoreDir` to order
|
|
activation of renewed certificates when several cluster nodes are
|
|
restarted at the same time. Store locks are not enabled by default.
|
|
Restored curl_easy cleanup behaviour from v2.4.14 and refactored
|
|
the use of curl_multi for OCSP requests to work with that.
|
|
Fixes <https://github.com/icing/mod_md/issues/293>.
|
|
|
|
*) mod_proxy_ajp: Report an error if the AJP backend sends an invalid number
|
|
of headers. [Ruediger Pluem]
|
|
|
|
*) mod_proxy_http2: apply the standard httpd content type handling
|
|
to responses from the backend, as other proxy modules do. Fixes PR 66391.
|
|
Thanks to Jérôme Billiras for providing the patch.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_http2: fixed trailer handling. Empty response bodies
|
|
prevented trailers from being sent to a client. See
|
|
<https://github.com/icing/mod_h2/issues/233> for how
|
|
this affected gRPC use.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy_http2: use only the ':authority' header to forward 'Host'
|
|
information to a backend. Deduce ':authority' from what the client
|
|
sent when 'ProxyPreserveHost' is on.
|
|
[Stefan Eissing]
|
|
|
|
*) core: Improve the AH00124 error message about too many redirects by logging
|
|
the URI of the request. PR 66403 [Ruediger Pluem]
|
|
|
|
*) mod_proxy_uwsgi: Stricter backend HTTP response parsing/validation.
|
|
[Yann Ylavic]
|
|
|
|
*) mod_http2: new directive 'H2MaxDataFrameLen n' to limit the maximum
|
|
amount of response body bytes put into a single HTTP/2 DATA frame.
|
|
Setting this to 0 places no limit (but the max size allowed by the
|
|
protocol is observed).
|
|
The module, by default, tries to use the maximum size possible, which is
|
|
somewhat around 16KB. This sets the maximum. When less response data is
|
|
available, smaller frames will be sent.
|
|
|
|
*) mod_http2: client resets of HTTP/2 streams led to unwanted 500 errors
|
|
reported in access logs and error documents. The processing of the
|
|
reset was correct, only unneccesary reporting was caused.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy: Fix double encoding of the uri-path of the request forwarded
|
|
to the origin server, when using mapping=encoded|servlet. [Yann Ylavic]
|
|
|
|
*) mod_dav: Open the lock database read-only when possible.
|
|
PR 36636 [Wilson Felipe <wfelipe gmail.com>, manu]
|
|
|
|
*) mod_ldap: LDAPConnectionPoolTTL should accept negative values in order to
|
|
allow connections of any age to be reused. Up to now, a negative value
|
|
was handled as an error when parsing the configuration file. PR 66421.
|
|
[nailyk <bzapache nailyk.fr>, Christophe Jaillet]
|
|
|
|
*) mod_proxy_hcheck: Re-enable workers in standard ERROR state. PR 66302.
|
|
[Alessandro Cavaliere <alessandro.cavalier7 unibo.it>]
|
|
|
|
*) mod_proxy_hcheck: Detect AJP/CPING support correctly. PR 66300.
|
|
[Alessandro Cavaliere <alessandro.cavalier7 unibo.it>]
|
|
|
|
*) mod_proxy_hcheck: hcmethod now allows for HTTP/1.1 requests
|
|
using GET11, HEAD11 and/or OPTIONS11. [Jim Jagielski]
|
|
|
|
*) mod_md: a bug was fixed that caused very large MDomains
|
|
with the combined DNS names exceeding ~7k to fail, as
|
|
request bodies would contain partially wrong data from
|
|
uninitialized memory. This would have appeared as failure
|
|
in signing-up/renewing such configurations.
|
|
[Stefan Eissing, Ronald Crane (Zippenhop LLC)]
|
|
|
|
*) mod_proxy_http: Avoid 417 responses for non forwardable 100-continue.
|
|
PR 65666. [Yann Ylavic]
|
|
|
|
*) mod_ssl: SSLFIPS compatible with OpenSSL 3.0. PR 66063.
|
|
[Petr Sumbera <petr.sumbera oracle.com>, Yann Ylavic]
|
|
|
|
*) core: the conf/mime.types has been updated in conformance with RFC 9239:
|
|
- .js moved from 'application/javascript' to 'text/javascript'
|
|
- .mjs was added as 'text/javascript'
|
|
[Mathias Bynens <@mathiasbynens> via PR 318]
|
|
|
|
*) mod_md: the `MDCertificateAuthority` directive can take more than one URL/name of
|
|
an ACME CA. This gives a failover for renewals when several consecutive attempts
|
|
to get a certificate failed.
|
|
A new directive was added: `MDRetryDelay` sets the delay of retries.
|
|
A new directive was added: `MDRetryFailover` sets the number of errored
|
|
attempts before an alternate CA is selected for certificate renewals.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_heartmonitor: Set the documented default value
|
|
"10" for HeartbeatMaxServers instead of "0". With "0"
|
|
no shared memory slotmem was initialized. [Rainer Jung]
|
|
|
|
*) mod_md: fixed a bug leading to failed transfers for OCSP
|
|
stapling information when more than 6 certificates needed
|
|
updates in the same run. [Stefan Eissing]
|
|
|
|
*) mod_http2: use the new REQUEST buckets to forward request
|
|
on secondary connections. Use the now generic
|
|
ap_process_connection() in h2 workers to process those.
|
|
[Stefan Eissing]
|
|
|
|
*) Implement full auto status ("key: value" type status output).
|
|
Especially not only status summary counts for certificates and
|
|
OCSP stapling but also lists. Auto status format is similar to
|
|
what was used for mod_proxy_balancer.
|
|
[Rainer Jung]
|
|
|
|
*) core/mod_http: use REQUEST meta buckets and a new HTTP/1.x specific
|
|
input filter to separate the handling for HTTP requests from the
|
|
handling of HTTP/1.x request parsing and checks.
|
|
A new HTTP1_REQUEST_IN filter installs itself on http/1.1 connections
|
|
before a request is being read. It generates either a REQUEST meta
|
|
bucket on success or an ERROR bucket with the proposed response status.
|
|
The core connection processing, relying on ap_read_request(), now expects
|
|
a REQUEST or ERROR bucket from the input filters and is agnostic to
|
|
specific HTTP versions and how they bring requests into the server.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_http2: remove unused and insecure code. Fixes PR66037.
|
|
Thanks to Ronald Crane (Zippenhop LLC) for reporting this.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md: added support for managing certificates via a
|
|
local tailscale demon for users of that secure networking.
|
|
This gives trusted certificates for tailscale assigned
|
|
domain names in the *.ts.net space.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md: a possible NULL pointer deref was fixed in
|
|
the JSON code for persisting time periods (start+end).
|
|
Fixes #282 on mod_md's github.
|
|
Thanks to @marcstern for finding this.
|
|
|
|
*) core: Avoid an overflow on large inputs in ap_is_matchexp. PR 66033
|
|
[Ruediger Pluem]
|
|
|
|
*) core/mod_http: use RESPONSE meta buckets and a new HTTP/1.x specific
|
|
filter to send responses through the output filter chain.
|
|
Specifically: the HTTP_HEADER output filter and ap_send_interim_response()
|
|
create a RESPONSE bucket and no longer are concerned with HTTP/1.x
|
|
serialization.
|
|
A new HTTP1_RESPONSE_OUT transcode filter writes the proper HTTP/1.x
|
|
bytes when dealing with a RESPONSE bucket. That filter installs itself
|
|
on the pre_read_request hook when the connection has protocol 'http/1.1'.
|
|
[Stefan Eissing]
|
|
|
|
*) MPM event: Restart children processes killed before idle maintenance.
|
|
PR 65769. [Yann Ylavic, Ruediger Pluem]
|
|
|
|
*) core: Disable TCP_NOPUSH optimization on OSX since it might introduce
|
|
transmission delays. PR 66019. [Yann Ylavic]
|
|
|
|
*) ab: Allow for TLSv1.3 when the SSL library supports it.
|
|
[abhilash1232 gmail.com, xiaolongx.jiang intel.com, Yann Ylavic]
|
|
|
|
*) ab: Add the -W option to use worker threads, allowing for multiple CPUs
|
|
to handle the load. [Yann Ylavic]
|
|
|
|
*) mod_substitute: Fix an integer overflow that can happen in very special
|
|
setups. PR 66034 [Ruediger Pluem]
|
|
|
|
*) core: make ap_escape_quotes() work correctly on strings
|
|
with more than MAX_INT/2 characters, counting quotes double.
|
|
Credit to <generalbugs@zippenhop.com> for finding this.
|
|
[Stefan Eissing]
|
|
|
|
*) core: adding a new hook and method to the API:
|
|
create_secondary_connection and ap_create_secondary_connection()
|
|
to setup connections related to a "master" one, as used in
|
|
the HTTP/2 protocol implementation.
|
|
*) mod_http2: using the new API calls to get rid of knowledge
|
|
about how the core handles conn_rec specifics.
|
|
Improvements in pollset stream handling to use less sets.
|
|
Using atomic read/writes instead of volatiles now.
|
|
Keeping a reserve of "transit" pools and bucket_allocs for
|
|
use on secondary connections to avoid repeated setup/teardowns.
|
|
|
|
*) mod_proxy: Set a status code of 502 in case the backend just closed the
|
|
connection in reply to our forwarded request. [Ruediger Pluem]
|
|
|
|
*) MPM event: Fix accounting of active/total processes on ungraceful restart,
|
|
PR 66004 (follow up to PR 65626 from 2.4.52). [Yann Ylavic]
|
|
|
|
*) mod_proxy: Add backend port to log messages to
|
|
ease identification of involved service. [Rainer Jung]
|
|
|
|
*) mod_systemd: Systemd socket activation can now be enabled at
|
|
build time but disabled at run time, if mod_systemd is not
|
|
loaded. [Lubos Uhliarik <luhliari redhat.com>]
|
|
|
|
*) ab: Add an optional ramp delay when starting concurrent connections so
|
|
as to not trigger denial of service protection in the network. Report
|
|
levels of concurrency achieved in cases where the test completes before
|
|
full concurrency is achieved. [Graham Leggett]
|
|
|
|
*) mod_http2: preserve the port number given in a HTTP/1.1
|
|
request that was Upgraded to HTTP/2. Fixes PR65881.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_http2: :scheme pseudo-header values, not matching the
|
|
connection scheme, are forwarded via absolute uris to the
|
|
http protocol processing to preserve semantics of the request.
|
|
Checks on combinations of pseudo-headers values/absence
|
|
have been added as described in RFC 7540.
|
|
Fixes <https://github.com/icing/mod_h2/issues/230>.
|
|
[Stefan Eissing]
|
|
|
|
*) core/mpm: add hook 'child_stopped` that gets called when the MPM has
|
|
stopped all processing in a child process. This is when all running
|
|
threads shall be stopped and joined.
|
|
[Stefan Eissing]
|
|
|
|
*) core: Make sure and check that LimitXMLRequestBody fits in system memory.
|
|
[Ruediger Pluem, Yann Ylavic]
|
|
|
|
*) ab: Fix the detection for when the server performed a legitimate
|
|
connection close as per RFC7230 6.3.1. We must check whedther the
|
|
connection was previously kept alive, and not whether the current
|
|
closed request is keepalive. [Graham Leggett]
|
|
|
|
*) mod_rewrite: Make URI-to-filename rewrites work transparently with
|
|
proxy early mappings (mapping=servlet/decoded). [Yann Ylavic]
|
|
|
|
*) mod_md: do not interfere with requests to /.well-known/acme-challenge/
|
|
resources if challenge type 'http-01' is not configured for a domain.
|
|
Fixes <https://github.com/icing/mod_md/issues/279>.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy: Bump limit of proxy workers names to 384 characters. PR 53218
|
|
[Yann Ylavic]
|
|
|
|
*) core: Simpler connection close logic if discarding the request body fails.
|
|
[Yann Ylavic, Ruediger Pluem]
|
|
|
|
*) mod_proxy: Use the maxium of front end and backend timeouts instead of the
|
|
minimum when tunneling requests (websockets, CONNECT requests).
|
|
Backend timeouts can be configured more selectively (per worker if needed)
|
|
as front end timeouts and typically the backend timeouts reflect the
|
|
application requirements better. PR 65886 [Ruediger Pluem]
|
|
|
|
*) mod_watchdog: use the `child_stopping` and `child_stopped` hooks
|
|
to shutdown workers before pool destruction releases global
|
|
resources and libraries.
|
|
[Stefan Eissing]
|
|
|
|
*) ab: Respond appropriately to SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE.
|
|
Previously the correct event was polled for, but the response to the poll
|
|
would call write instead of read, and read instead of write. PR 55952
|
|
[Graham Leggett]
|
|
|
|
*) mod_md: the status description in MDomain's JSON, exposed in the
|
|
md-status handler (if configure) did sometimes not carry the correct
|
|
message when certificates needed renew.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_tls: Fix a linkage issue with rustls when compiled
|
|
with rust 1.55, 1.56 or 1.57. This prevents the loading
|
|
of the module because of an undefined symbol: fmaf
|
|
See https://github.com/rustls/rustls-ffi/issues/133
|
|
[Christophe Jaillet]
|
|
|
|
*) ap_regex: Use Thread Local Storage (TLS) to recycle ap_regexec() buffers
|
|
when an efficient TLS implementation is available. [Yann Ylavic]
|
|
|
|
*) mod_reqtimeout: Fix missing handshake= timeout enforcement. [Yann Ylavic]
|
|
|
|
*) mod_dav: Fix regression when gathering properties which could lead to huge
|
|
memory consumption proportional to the number of resources.
|
|
[Evgeny Kotkov, Ruediger Pluem]
|
|
|
|
*) mod_unixd: CoreDumpDirectory requires enabling tracing on FreeBSD 11+.
|
|
PR 65819. [David CARLIER <devnexen gmail.com>]
|
|
|
|
*) mpm_event: Fix a possible listener deadlock on heavy load when restarting
|
|
and/or reaching MaxConnectionsPerChild. PR 65769. [Yann Ylavic]
|
|
|
|
*) http: Enforce that fully qualified uri-paths not to be forward-proxied
|
|
have an http(s) scheme, and that the ones to be forward proxied have a
|
|
hostname, per HTTP specifications. [Ruediger Pluem, Yann Ylavic]
|
|
|
|
*) mod_http2: fixed a bug in v2.0.0 that could lead to an infinite
|
|
loop when clients close connections prematurely.
|
|
Enhanced the scoreboard status updates on h2 connections for
|
|
mod_status. 'server-status' now gives a better idea what the
|
|
connection is working on.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_http: Correctly sent a 100 Continue status code when sending an interim
|
|
response as result of an Expect: 100-Continue in the request and not the
|
|
current status code of the request. PR 65725 [Ruediger Pluem]
|
|
|
|
*) mod_proxy_connect: Honor the smallest of the backend or client timeout
|
|
while tunneling. [Yann Ylavic]
|
|
|
|
*) mod_http2: a regression in v1.15.24 of the modules was fixed that
|
|
could lead to httpd child processes not being terminated on a
|
|
graceful reload or when reaching MaxConnectionsPerChild.
|
|
When unprocessed h2 requests were queued at the time, these could stall.
|
|
See <https://github.com/icing/mod_h2/issues/212>.
|
|
[@hansborr, @famzah, Stefan Eissing]
|
|
|
|
*) mod_proxy_uwsgi: Remove duplicate slashes at the beginning of PATH_INFO.
|
|
PR 65616. [Ruediger Pluem]
|
|
|
|
*) mod_md: Fix memory leak in case of failures to load the private key.
|
|
PR 65620 [ Filipe Casal <filipe.casal@trailofbits.com> ]
|
|
|
|
* mod_http2: the new pollset implementation is disabled when
|
|
compiling with an APR version less than 1.6.
|
|
|
|
*) mod_autoindex: Add "IndexForbiddenReturn404" to return 404 instead of a
|
|
403 when Options does not included "indexes". [Eric Covener]
|
|
|
|
*) mod_dir: Add "NotFound" option to "DirectorySlash" directive to return
|
|
404 instead of a DirectorySlash redirect. [Eric Covener]
|
|
|
|
*) mod_md: adding v2.4.8 with the following changes
|
|
- Added support for ACME External Account Binding (EAB).
|
|
Use the new directive `MDExternalAccountBinding` to provide the
|
|
server with the value for key identifier and hmac as provided by
|
|
your CA.
|
|
While working on some servers, EAB handling is not uniform
|
|
across CAs. First tests with a Sectigo Certificate Manager in
|
|
demo mode are successful. But ZeroSSL, for example, seems to
|
|
regard EAB values as a one-time-use-only thing, which makes them
|
|
fail if you create a seconde account or retry the creation of the
|
|
first account with the same EAB.
|
|
- The directive 'MDCertificateAuthority' now checks if its parameter
|
|
is a http/https url or one of a set of known names. Those are
|
|
'LetsEncrypt', 'LetsEncrypt-Test', 'Buypass' and 'Buypass-Test'
|
|
for now and they are not case-sensitive.
|
|
The default of LetsEncrypt is unchanged.
|
|
- `MDContactEmail` can now be specified inside a `<MDomain dnsname>`
|
|
section.
|
|
- Treating 401 HTTP status codes for orders like 403, since some ACME
|
|
servers seem to prefer that for accessing oders from other accounts.
|
|
- When retrieving certificate chains, try to read the repsonse even
|
|
if the HTTP Content-Type is unrecognized.
|
|
- Fixed a bug that reset the error counter of a certificate renewal
|
|
and prevented the increasing delays in further attempts.
|
|
- Fixed the renewal process giving up every time on an already existing
|
|
order with some invalid domains. Now, if such are seen in a previous
|
|
order, a new order is created for a clean start over again.
|
|
See <https://github.com/icing/mod_md/issues/268>
|
|
- Fixed a mixup in md-status handler when static certificate files
|
|
and renewal was configured at the same time.
|
|
|
|
*) mod_http2:
|
|
- Fixed an issue since 1.15.24 that "Server" headers in proxied requests
|
|
were overwritten instead of preserved. [PR by @daum3ns]
|
|
- Added directove 'H2StreamTimeout' to configure a separate value for HTTP/2
|
|
streams, overriding server's 'Timeout' configuration. [rpluem]
|
|
- HTTP/2 connections now use pollsets to monitor the status of the
|
|
ongoing streams and their main connection when host OS allows this.
|
|
- Removed work-arounds for older versions of libnghttp2 and checking
|
|
during configure that at least version 1.15.0 is present.
|
|
- The HTTP/2 connection state handler, based on an experiment and draft
|
|
at the IETF http working group (abandoned for some time), has been removed.
|
|
- H2SerializeHeaders no longer has an effect. A warning is logged when it is
|
|
set to "on". The switch enabled the internal writing of requests to be parsed
|
|
by the internal HTTP/1.1 protocol handler and was introduced to avoid
|
|
potential incompatibilities during the introduction of HTTP/2.
|
|
- Removed the abort/redo of tasks when mood swings lower the active limit.
|
|
[Ruediger Pluem, daum3ns, Stefan Eissing]
|
|
|
|
*) core: Be safe with ap_lingering_close() called with a socket NULL-ed by
|
|
a third-party module. PR 65627.
|
|
[acmondor <bz.apache.org acmondor.ca>, Yann Ylavic]
|
|
|
|
*) mpm_event: Restart stopping of idle children after a load peak. PR 65626.
|
|
[Yann Ylavic, Ruediger Pluem]
|
|
|
|
*) mod_proxy: SetEnv proxy-nohalfclose (or alike) allows to disable TCP
|
|
half-close forwarding when tunneling protocols. [Yann Ylavic]
|
|
|
|
*) mod_tls: added mod_tls from abetterinternet, donated
|
|
by ISRG/Prossimo <https://github.com/abetterinternet/mod_tls>.
|
|
- adds font-/backend TLS (v1.2/v1.3) via the Rust rustls crate
|
|
and its rustls-ffi C binding <https://github.com/rustls/rustls-ffi>.
|
|
- documentation at <https://github.com/abetterinternet/mod_tls>
|
|
(adding to Apache's manual TBD)
|
|
- build support for Apache httpd configure on *nix platforms,
|
|
rustls is linked statically into mod_tls.
|
|
|
|
*) mod_md: values for External Account Binding (EAB) can
|
|
now also be configured to be read from a separate JSON
|
|
file. This allows to keep server configuration permissions
|
|
world readable without exposing secrets.
|
|
[Stefan Eissing]
|
|
|
|
*) core: Add ap_unescape_url_ex() for better decoding control, and deprecate
|
|
unused AP_NORMALIZE_DROP_PARAMETERS flag.
|
|
[Yann Ylavic, Ruediger Pluem, Stefan Eissing, Joe Orton]
|
|
|
|
*) core: AP_NORMALIZE_DECODE_UNRESERVED should normalize the second dot in
|
|
the uri-path when it's preceded by a dot. [Yann Ylavic]
|
|
|
|
*) mod_proxy: New tunnel_forward hooking mechanism allowing modules to handle
|
|
Upgrade(d) protocols data. [Yann Ylavic]
|
|
|
|
*) mod_dav: Correctly handle errors returned by dav providers on REPORT
|
|
requests. [Ruediger Pluem]
|
|
|
|
*) mod_rewrite: Fix UDS ("unix:") scheme for [P] rules. PR 57691 + 65590.
|
|
[Janne Peltonen <janne.peltonen sange.fi>]
|
|
|
|
*) mod_proxy: Handle UDS URIs with empty hostname ("unix:///...") as if they
|
|
had no hostname ("unix:/..."). [Yann Ylavic]
|
|
|
|
*) event mpm: Correctly count active child processes in parent process if
|
|
child process dies due to MaxConnectionsPerChild.
|
|
PR 65592 [Ruediger Pluem]
|
|
|
|
*) core: Add ap_pre_connection() as a wrapper to ap_run_pre_connection()
|
|
and use it to prevent that failures in running the pre_connection
|
|
hook cause crashes afterwards. [Ruediger Pluem]
|
|
|
|
*) mod_md: fixed a bug in handling multiple parallel OCSP requests. These could
|
|
run into an assertion which terminated (and restarted) the child process where
|
|
the task was running. Eventually, all OCSP responses were collected, but not
|
|
in the way that things are supposed to work.
|
|
See also <https://bz.apache.org/bugzilla/show_bug.cgi?id=65567>.
|
|
The bug was possibly triggered when more than one OCSP status needed updating
|
|
at the same time. For example for several renewed certificates after a server
|
|
reload.
|
|
|
|
*) mod_md: when MDMessageCmd for a 'challenge-setup:<type>:<dnsname>'
|
|
fails (!= 0 exit), the renewal process is aborted and an error is
|
|
reported for the MDomain. This provides scripts that distribute
|
|
information in a cluster to abort early with bothering an ACME
|
|
server to validate a dns name that will not work. The common
|
|
retry logic will make another attempt in the future, as with
|
|
other failures.
|
|
Fixed a bug when adding private key specs to an already working
|
|
MDomain, see <https://github.com/icing/mod_md/issues/260>.
|
|
[Stefan Eissing]
|
|
|
|
*) core: Add ap_create_connection() to create either a server or client/proxy
|
|
connection.
|
|
|
|
*) mod_http2: when a server is restarted gracefully, any idle h2 worker
|
|
threads are shut down immediately. [Stefan Eissing]
|
|
|
|
*) core: Initialize the request fields on read failure to avoid NULLs.
|
|
[Yann Ylavic]
|
|
|
|
*) mod_proxy: Do not canonicalize the proxied URL when both "nocanon" and
|
|
"ProxyPassInterpolateEnv On" are configured. PR 65549.
|
|
[Joel Self <joelself gmail.com>]
|
|
|
|
*) mpm_event: Fix children processes possibly not stopped on graceful
|
|
restart. PR 63169. [Joel Self <joelself gmail.com>]
|
|
|
|
*) mod_unique_id: Reduce the time window where duplicates may be generated
|
|
PR 65159
|
|
[Christophe Jaillet]
|
|
|
|
*) Revert "mod_unique_id: Fix potential duplicated ID generation under heavy load.
|
|
PR 65159" added in 2.4.47.
|
|
This causes issue on Windows.
|
|
[Christophe Jaillet]
|
|
|
|
*) mod_proxy_uwsgi: Fix PATH_INFO setting for generic worker. [Yann Ylavic]
|
|
|
|
*) mod_md: Certificate/keys pairs are verified as matching before a renewal is accepted
|
|
as successful or a staged renewal is replacing the existing certificates.
|
|
This avoid potential mess ups in the md store file system to render the active
|
|
certificates non-working. [@mkauf]
|
|
|
|
*) mod_proxy: Fix a potential infinite loop when tunneling Upgrade(d)
|
|
protocols from mod_proxy_http, and a timeout triggering falsely when
|
|
using mod_proxy_wstunnel, mod_proxy_connect or mod_proxy_http with
|
|
upgrade= setting. PRs 65521 and 65519. [Yann Ylavic]
|
|
|
|
*) mod_proxy: Faster unix socket path parsing in the "proxy:" URL.
|
|
[Yann Ylavic]
|
|
|
|
*) mpm_event: Fix graceful stop/restart of children processes if connections
|
|
are in lingering close for too long. [Yann Ylavic]
|
|
|
|
*) mod_md: fixed a potential null pointer dereference if ACME/OCSP
|
|
server returned 2xx responses without content type. Reported by chuangwen.
|
|
[chuangwen, Stefan Eissing]
|
|
|
|
* core/mpm: add hook 'child_stopping` that gets called when the MPM is
|
|
stopping a child process. The additional `graceful` parameter allows
|
|
registered hooks to free resources early during a graceful shutdown.
|
|
[Yann Ylavic, Stefan Eissing]
|
|
|
|
*) mod_proxy: Fix icomplete initialization of BalancerMember(s) from the
|
|
balancer-manager, which can lead to a crash. [Yann Ylavic]
|
|
|
|
*) mod_http2:
|
|
- Aborting requests via RST_STREAM no longer affect the available
|
|
resources of a connection when the first chunk of the response
|
|
body has been sent.
|
|
- H2Min/MaxWorkers behave as intended again. The module will initially
|
|
create H2MinWorkers threads and add up to H2MaxWorkers when needed. These
|
|
additional workers time out when idle after H2MaxWorkerIdleSeconds and
|
|
disappear again.
|
|
- Added a timeout to h2 worker cleanup to exit latest after 5 seconds of
|
|
waiting on idle workers to terminate. This happens after all connections
|
|
have been processed. a WARNING is logged in case workers lagged behind.
|
|
- When the shutdown of a child is detected (e.g. graceful shutdown), the
|
|
module will terminate all idle workers above H2MinWorkers right away.
|
|
This detection currently only happens when a HTTP/2 connection is active.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md:
|
|
- Domain names in `<MDomain ...>` can now appear in quoted form.
|
|
- Fixed a failure in ACME challenge selection that aborted further searches
|
|
when the tls-alpn-01 method did not seem to be suitable.
|
|
- Changed the tls-alpn-01 setup to only become unsuitable when none of the
|
|
dns names showed support for a configured 'Protocols ... acme-tls/1'. This
|
|
allows use of tls-alpn-01 for dns names that are not mapped to a VirtualHost.
|
|
[Stefan Eissing]
|
|
|
|
*) core/mod_proxy/mod_ssl:
|
|
Adding `outgoing` flag to conn_rec, indicating a connection is
|
|
initiated by the server to somewhere, in contrast to incoming
|
|
connections from clients.
|
|
Adding 'ap_ssl_bind_outgoing()` function that marks a connection
|
|
as outgoing and is used by mod_proxy instead of the previous
|
|
optional function `ssl_engine_set`. This enables other SSL
|
|
module to secure proxy connections.
|
|
The optional functions `ssl_engine_set`, `ssl_engine_disable` and
|
|
`ssl_proxy_enable` are now provided by the core to have backward
|
|
compatibility with non-httpd modules that might use them. mod_ssl
|
|
itself no longer registers these functions, but keeps them in its
|
|
header for backward compatibility.
|
|
The core provided optional function wrap any registered function
|
|
like it was done for `ssl_is_ssl`.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_h2: Don't strip headers from 304 responses. [Yann Ylavic]
|
|
|
|
*) mod_proxy: Fix possible reuse/merging of Proxy(Pass)Match worker instances
|
|
with others when their URLs contain a '$' substitution. PR 65419.
|
|
[Yann Ylavic]
|
|
|
|
*) mpm_prefork: Block signals for child_init hooks to prevent potential
|
|
threads created from there to catch MPM's signals.
|
|
[Ruediger Pluem, Yann Ylavic]
|
|
|
|
*) mod_ssl: tighten the handling of ALPN for outgoing (proxy)
|
|
connections. If ALPN protocols are provided and sent to the
|
|
remote server, the received protocol selected is inspected
|
|
and checked for a match. Without match, the peer handshake
|
|
fails.
|
|
An exception is the proposal of "http/1.1" where it is
|
|
accepted if the remote server did not answer ALPN with
|
|
a selected protocol. This accomodates for hosts that do
|
|
not observe/support ALPN and speak http/1.x be default.
|
|
|
|
* mod_log_config/mod_ssl: moved the log_handlers registered by mod_ssl
|
|
into mod_log_config itself. These now use the global `ap_ssl_var_lookup()`
|
|
functions and work for all running SSL modules.
|
|
The dependency from mod_ssl to mod_log_config and its header is removed.
|
|
mod_ssl now provides the content of "{errstr}c" as variable "SSL_CLIENT_VERIFY_ERRSTR".
|
|
This change should be fully compatible to all deployed configurations.
|
|
[Stefan Eissing]
|
|
|
|
*) dbm: Split the loading of a dbm driver from the opening of a dbm file. When
|
|
an attempt to load a dbm driver fails, log clearly which driver triggered
|
|
the error (not "default"), and what the error was. [Graham Leggett]
|
|
|
|
*) core: Fix a regression that stripped the ETag header from 304 responses.
|
|
PR 61820 [Ruediger Pluem, Roy T. Fielding]
|
|
|
|
*) core/mod_ssl/mod_md: adding OCSP response provisioning as core feature. This
|
|
allows modules to access and provide OCSP response data without being tied
|
|
of each other. The data is exchanged in standard, portable formats (PEM encoded
|
|
certificates and DER encoded responses), so that the actual SSL/crypto
|
|
implementations used by the modules are independant of each other.
|
|
Registration and retrieval happen in the context of a server (server_rec)
|
|
which modules may use to decide if they are configured for this or not.
|
|
The area of changes:
|
|
1. core: defines 2 functions in include/http_ssl.h, so that modules may
|
|
register a certificate, together with its issuer certificate for OCSP
|
|
response provisioning and ask for current response data (DER bytes) later.
|
|
Also, 2 hooks are defined that allow modules to implement this OCSP
|
|
provisioning.
|
|
2. mod_ssl uses the new functions, in addition to what it did already, to
|
|
register its certificates this way. If no one is interested in providing
|
|
OCSP, it falls back to its own (if configured) stapling implementation.
|
|
3. mod_md registers itself at the core hooks for OCSP provisioning. Depending
|
|
on configuration, it will accept registrations of its own certificates only,
|
|
all certificates or none.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy_wstunnel: Add ProxyWebsocketFallbackToProxyHttp to opt-out the
|
|
fallback to mod_proxy_http for WebSocket upgrade and tunneling.
|
|
[Yann Ylavic]
|
|
|
|
*) mod_proxy_hcheck: Honor worker timeout settings. [Yann Ylavic]
|
|
|
|
*) mod_lua: Add support to Lua 5.4 [Joe Orton, Giovanni Bechis, Ruediger Pluem]
|
|
|
|
*) mod_md: Tolerate a missing "revokeCert" or "keyChange" resource.
|
|
[Fraser Tweedale <ftweedal redhat.com>]
|
|
|
|
*) mod_ssl: Add SSL_{CLIENT,SERVER}_B64CERT variables with
|
|
base64-encoded DER certificates. Add SSL_CLIENT_B64CERT_CHAIN_n
|
|
equivalents for SSL_CLIENT_CERT_CHAIN_n, and new
|
|
"ExportBase64CertData" argument for SSLOptions. PR 65169.
|
|
[Joe Orton]
|
|
|
|
*) mod_proxy_balancer: Include nonce in XML output. PR 63074.
|
|
Federico Mennite <federico.mennite lifeware.ch>
|
|
|
|
*) mod_http2: Fixed a race condition that could lead to streams being
|
|
aborted (RST to the client), although a response had been produced.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_unique_id: Fix potential duplicated ID generation under heavy load.
|
|
PR 65159
|
|
[Jonas Müntener <jonas.muentener ergon.ch>, Christophe Jaillet]
|
|
|
|
*) core: provide ap_ssl_* functions in new http_ssl.h header file.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_socache_shmcb: Avoid double SHM cleanup and possible crash on
|
|
restart/stop. PR 59798. [Yann Ylavic]
|
|
|
|
*) mod_md: v2.4.0 with improvements and bugfixes
|
|
- MDPrivateKeys allows the specification of several types. Beside "RSA" plus
|
|
optional key lengths elliptic curves can be configured. This means you can
|
|
have multiple certificates for a Managed Domain with different key types.
|
|
With ```MDPrivateKeys secp384r1 rsa2048``` you get one ECDSA and one RSA
|
|
certificate and all modern client will use the shorter ECDSA, while older
|
|
client will get the RSA certificate.
|
|
Many thanks to @tlhackque who pushed and helped on this.
|
|
- Support added for MDomains consisting of a wildcard. Configuring
|
|
```MDomain *.host.net``` will match all virtual hosts matching that pattern
|
|
and obtain one certificate for it (assuming you have 'dns-01' challenge
|
|
support configured). Addresses #239.
|
|
- Removed support for ACMEv1 servers. The only known installation used to
|
|
be Let's Encrypt which has disabled that version more than a year ago for
|
|
new accounts.
|
|
- Andreas Ulm (<https://github.com/root360-AndreasUlm>) implemented the
|
|
```renewing``` call to ```MDMessageCmd``` that can deny a certificate
|
|
renewal attempt. This is useful in clustered installations, as
|
|
discussed in #233).
|
|
- New event ```challenge-setup:<type>:<domain>```, triggered when the
|
|
challenge data for a domain has been created. This is invoked before the
|
|
ACME server is told to check for it. The type is one of the ACME challenge
|
|
types. This is invoked for every DNS name in a MDomain.
|
|
- The max delay for retries has been raised to daily (this is like all
|
|
retries jittered somewhat to avoid repeats at fixed time of day).
|
|
- Certain error codes reported by the ACME server that indicate a problem
|
|
with the configured data now immediately switch to daily retries. For
|
|
example: if the ACME server rejects a contact email or a domain name,
|
|
frequent retries will most likely not solve the problem. But daily retries
|
|
still make sense as there might be an error at the server and un-supervised
|
|
certificate renewal is the goal. Refs #222.
|
|
- Test case and work around for domain names > 64 octets. Fixes #227.
|
|
When the first DNS name of an MD is longer than 63 octets, the certificate
|
|
request will not contain a CN field, but leave it up to the CA to choose one.
|
|
Currently, Lets Encrypt looks for a shorter name in the SAN list given and
|
|
fails the request if none is found. But it is really up to the CA (and what
|
|
browsers/libs accept here) and may change over the years. That is why
|
|
the decision is best made at the CA.
|
|
- Retry delays now have a random +/-[0-50]% modification applied to let
|
|
retries from several servers spread out more, should they have been
|
|
restarted at the same time of day.
|
|
- Fixed several places where the 'badNonce' return code from an ACME server
|
|
was not handled correctly. The test server 'pebble' simulates this behaviour
|
|
by default and helps nicely in verifying this behaviour. Thanks, pebble!
|
|
- Set the default `MDActivationDelay` to 0. This was confusing to users that
|
|
new certificates were deemed not usably before a day of delay. When clocks are
|
|
correct, using a new certificate right away should not pose a problem.
|
|
- When handling ACME authorization resources, the module no longer requires
|
|
the server to return a "Location" header, as was necessary in ACMEv1.
|
|
Fixes #216.
|
|
- Fixed a theoretical uninitialized read when testing for JSON error responses
|
|
from the ACME CA. Reported at <https://bz.apache.org/bugzilla/show_bug.cgi?id=64297>.
|
|
- ACME problem reports from CAs that include parameters in the Content-Type
|
|
header are handled correctly. (Previously, the problem text would not be
|
|
reported and retries could exist CA limits.)
|
|
- Account Update transactions to V2 CAs now use the correct POST-AS-GET method.
|
|
Previously, an empty JSON object was sent - which apparently LE accepted,
|
|
but others reject.
|
|
- MDCertificateFile and MDCertificateKeyFile can now be specified several
|
|
times to add multiple, static certificates to a MDomain.
|
|
[Stefan Eissing, @tlhackque, Andreas Ulm]
|
|
|
|
*) mod_session: Improve session parsing. [Yann Yalvic]
|
|
|
|
*) mod_proxy_hcheck: Don't pile up health checks if the previous one did
|
|
not finish before hcinterval. PR 63010. [Yann Ylavic]
|
|
|
|
*) core: Adding SSL related inquiry functions to the server API.
|
|
These function are always available, even when no module providing
|
|
SSL is loaded. They provide their own "shadowing" implementation for
|
|
the optional functions of similar name that mod_ssl and impersonators
|
|
of mod_ssl provide.
|
|
This enables loading of several SSL providing modules when all but
|
|
one of them registers itself into the new hooks. Two old-style SSL
|
|
modules will not work, as they replace the others optional functions
|
|
with their own.
|
|
Modules using the old-style optional functions will continue to work
|
|
as core supplies its own versions of those.
|
|
The following has been added so far:
|
|
- ap_ssl_conn_is_ssl() to query if a connection is using SSL.
|
|
- ap_ssl_var_lookup() to query SSL related variables for a
|
|
server/connection/request.
|
|
- Hooks for 'ssl_conn_is_ssl' and 'ssl_var_lookup' where modules
|
|
providing SSL can install their own value supplying functions.
|
|
- ap_ssl_add_cert_files() to enable other modules like mod_md to provide
|
|
certificate and keys for an SSL module like mod_ssl.
|
|
- ap_ssl_add_fallback_cert_files() to enable other modules like mod_md to
|
|
provide a fallback certificate in case no 'proper' certificate is
|
|
available for an SSL module like mod_ssl.
|
|
- ap_ssl_answer_challenge() to enable other modules like mod_md to
|
|
provide a certificate as used in the RFC 8555 'tls-alpn-01' challenge
|
|
for the ACME protocol for an SSL module like mod_ssl. The function
|
|
and its hook provide PEM encoded data instead of file names.
|
|
- Hooks for 'ssl_add_cert_files', 'ssl_add_fallback_cert_files' and
|
|
'ssl_answer_challenge' where modules like mod_md can provide providers
|
|
to the above mentioned functions.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_http2: new option 'H2OutputBuffering on/off' which controls the
|
|
buffering of stream output. The default is on, which is the behaviour of
|
|
previous mod-h2 versions. When off, all bytes are made available immediately
|
|
to the main connection for sending them out to the client. This fixes interop
|
|
issues with certain flavours of gRPC. [Stefan Eissing]
|
|
|
|
*) mod_authnz_ldap: Prevent authentications with empty passwords for the
|
|
initial bind to fail with status 500. [Ruediger Pluem]
|
|
|
|
*) mod_http2: Fixed reporting of transferred bytes for mod_logio for
|
|
modifiers %O (and %S) to report the number of transferred header and
|
|
body lengths. This is still only an approximation of the bytes on the
|
|
connection. The data is subject to header compression and h2 framing
|
|
afterwards. [Stefan Eissing]
|
|
|
|
*) mod_cgid: Intercept and log stderr output correctly on Unix systems
|
|
supporting fd passing. PR 54221. [Joe Orton]
|
|
|
|
*) mod_auth_digest: Fast validation of the nonce's base64 to fail early if
|
|
the format can't match anyway. [Yann Ylavic]
|
|
|
|
*) mod_xml2enc: Update check to match MIME types matching
|
|
"+xml" rather than anything containing "xml", avoiding
|
|
corruption of Microsoft OOXML formats. PR 64339.
|
|
[Joseph Heenan <joseph.heenan fintechlabs.io>]
|
|
|
|
*) mod_proxy_wstunnel: Leave Upgrade requests handling to mod_proxy_http,
|
|
allowing for (non-)Upgrade negotiation with the origin server.
|
|
[Yann Ylavic]
|
|
|
|
*) mod_ssl: SSLProxyMachineCertificateFile/Path may reference files
|
|
which include CA certificates; those CA certs are treated as if
|
|
configured with SSLProxyMachineCertificateChainFile. [Joe Orton]
|
|
|
|
*) mpm_event: don't reset connections after lingering close, restoring prior
|
|
to 2.4.28 behaviour. [Yann Ylavic]
|
|
|
|
*) mod_dav_fs: Improve logging output when failing to open files for
|
|
writing. PR 64413. [Bingyu Shen <ahshenbingyu gmail.com>]
|
|
|
|
*) mod_proxy: Add optional third argument for ProxyRemote, which
|
|
configures Basic authentication credentials to pass to the remote
|
|
proxy. PR 37355. [Joe Orton]
|
|
|
|
*) mod_proxy_http: Fix 100-continue deadlock for spooled request bodies,
|
|
leading to Request Timeout (408). PR 63855. [Yann Ylavic]
|
|
|
|
*) http: Allow unknown response status' lines returned in the form of
|
|
"HTTP/x.x xxx Status xxx". [Yann Ylavic]
|
|
|
|
*) mod_proxy_fcgi: Honor "SetEnv proxy-sendcl" to forward a chunked
|
|
Transfer-Encoding from the client, spooling the request body when needed
|
|
to provide a Content-Length to the backend. PR 57087. [Yann Ylavic]
|
|
|
|
*) mpm_event: kill connections in keepalive state only when there is no more
|
|
workers available, not when the maximum number of connections is reached,
|
|
restoring prior to 2.4.30 behaviour. [Yann Ylavic]
|
|
|
|
*) mod_allowmethods: Allow methods to be added/removed with +/- prefix. PR64785.
|
|
[Marcel Montes <spiceman gmail.com>]
|
|
|
|
*) mod_unique_id: Use base64url encoding for UNIQUE_ID variable,
|
|
avoiding the use of '@'. PR 57044.
|
|
[Michael Kaufmann <apache-bugzilla michael-kaufmann.ch>]
|
|
|
|
*) core: add ReadBufferSize, FlushMaxThreshold and FlushMaxPipelined
|
|
directives. [Yann Ylavic]
|
|
|
|
*) mod_md: lowered the required minimal libcurl version from 7.50 to 7.29
|
|
as proposed by <alexander.gerasimov@codeit.pro>.
|
|
|
|
*) mod_http2: Log requests and sent the configured error response in case of
|
|
early detected errors like too many or too long headers.
|
|
[Ruediger Pluem, Stefan Eissing]
|
|
|
|
*) mod_proxy_uwsgi: Fix a crash when sending environment variables with no
|
|
value. PR 64598 [Ruediger Pluem]
|
|
|
|
*) mod_cgi/mod_cgid: Avoid a second read from a CGI script after a
|
|
timeout, which effectively doubled the configured timeout setting.
|
|
PR 64709. [Joe Orton]
|
|
|
|
*) core: handle headers when replying a 304 following RFC7234.
|
|
[Giovanni Bechis]
|
|
|
|
*) mod_http2: remove support for abandoned http-wg draft
|
|
<https://datatracker.ietf.org/doc/draft-kazuho-h2-cache-digest/>.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_proxy_uwsgi: Error out on HTTP header larger than 16K (hard
|
|
protocol limit). [Yann Ylavic]
|
|
|
|
*) mod_dav: Some DAV extensions, like CalDAV, specify both document
|
|
elements and property elements that need to be taken into account
|
|
when generating a property. The document element and property element
|
|
are made available in the dav_liveprop_elem structure under the
|
|
DAV_PROP_ELEMENT key in the resource pool. [Graham Leggett]
|
|
|
|
*) mod_dav: Add utility functions dav_validate_root_ns(),
|
|
dav_find_child_ns(), dav_find_next_ns(), dav_find_attr_ns() and
|
|
dav_find_attr() so that other modules get to play too.
|
|
[Graham Leggett]
|
|
|
|
*) mod_http2:
|
|
Fixes <https://github.com/icing/mod_h2/issues/200>:
|
|
"LimitRequestFields 0" now disables the limit, as documented.
|
|
Fixes <https://github.com/icing/mod_h2/issues/201>:
|
|
Do not count repeated headers with same name against the field
|
|
count limit. The are merged internally, as if sent in a single HTTP/1 line.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_http2: Avoid segfaults in case of handling certain responses for
|
|
already aborted connections. [Stefan Eissing, Ruediger Pluem]
|
|
|
|
*) core: Remove support for the Content-MD5 header, removed in RFC7231.
|
|
Functions ap_md5digest() and ap_md5contextTo64() removed, and
|
|
ContentDigest directive. [Graham Leggett]
|
|
|
|
*) mod_dav: Allow other DAV modules to use dav_get_resource().
|
|
[Graham Leggett]
|
|
|
|
*) mpm_common: remove ap_mpm_unregister_poll_callback() and
|
|
mpm_unregister_poll_callback hook. [Yann Ylavic]
|
|
|
|
*) mod_proxy_http: add asynchronous handling of Upgrade(d) protocols,
|
|
where idle connections are returned to the MPM and rescheduled on
|
|
another thread when ready. [Yann Ylavic]
|
|
|
|
*) mod_dav: Add method_precondition hook. WebDAV extensions define
|
|
conditions that must exist before a WebDAV method can be executed.
|
|
This hook allows a WebDAV extension to verify these preconditions.
|
|
[Graham Leggett]
|
|
|
|
*) Add hooks deliver_report and gather_reports to mod_dav.h. Allows other
|
|
modules apart from versioning implementations to handle the REPORT method.
|
|
[Graham Leggett]
|
|
|
|
*) Add dav_get_provider(), dav_open_lockdb() and dav_close_lockdb() mod_dav.h.
|
|
[Graham Leggett]
|
|
|
|
*) "[mod_dav_fs etag handling] should really honor the FileETag setting".
|
|
- It now does.
|
|
- Add "Digest" to FileETag directive, allowing a strong ETag to be
|
|
generated using a file digest.
|
|
- Add ap_make_etag_ex() and ap_set_etag_fd() to allow full control over
|
|
ETag generation.
|
|
- Add concept of "binary notes" to request_rec, allowing packed bit flags
|
|
to be added to a request.
|
|
- First binary note - AP_REQUEST_STRONG_ETAG - allows modules to force
|
|
the ETag to a strong ETag to comply with RFC requirements, such as those
|
|
mandated by various WebDAV extensions.
|
|
[Graham Leggett]
|
|
|
|
*) mod_ssl: Fix a race condition and possible crash when using a proxy client
|
|
certificate (SSLProxyMachineCertificateFile).
|
|
[Armin Abfalterer <a.abfalterer gmail.com>]
|
|
|
|
*) mod_proxy: recognize parameters from ProxyPassMatch workers with dollar
|
|
substitution, such that they apply to the backend connection. Note that
|
|
connection reuse is disabled by default to avoid compatibility issues.
|
|
[Takashi Sato, Jan Kaluza, Eric Covener, Yann Ylavic, Jean-Frederic Clere]
|
|
|
|
*) mod_proxy_http: remove proxy-sendchunked and proxy-sendchunks
|
|
handling, the default behaviour being now to stream the request body
|
|
using Content-Length when the length is known and fall back to chunked
|
|
Transfer-Encoding otherwise (unless proxy-sendcl is set thus requiring
|
|
that the request body be spooled to memory or filesystem). [Yann Ylavic]
|
|
|
|
*) mod_ldap: Avoid performance overhead of APR-util rebind cache for
|
|
OpenLDAP 2.2+. PR 64414. [Joe Orton]
|
|
|
|
*) mod_proxy_http: flush spooled request body in one go to avoid
|
|
leaking (or long lived) temporary file. PR 64452. [Yann Ylavic]
|
|
|
|
*) mod_proxy_fcgi: ProxyFCGISetEnvIf unsets variables when expression
|
|
evaluates to false. PR64365. [Michael König <mail ikoenig.net>]
|
|
|
|
*) mod_proxy_http: handle Upgrade request, 101 (Switching Protocol) response
|
|
and switched protocol forwarding. [Yann Ylavic]
|
|
|
|
*) mod_ssl: The "ssl_var_lookup" optional function API now takes a
|
|
const char *name argument and returns a const char * string
|
|
value. The pool argument must now be non-NULL. [Joe Orton]
|
|
|
|
*) mod_ssl: With OpenSSL 1.1.1 and later, SSLRandomSeed is now
|
|
ignored. OpenSSL must be configured with a suitable entropy
|
|
source, or mod_ssl will fail to start up. [Joe Orton]
|
|
|
|
*) mod_ssl: With OpenSSL 1.1.1 and later, client-initiated
|
|
renegotiation in TLSv1.2 and earlier is blocked at SSL library
|
|
level (with a TLS warning alert sent), rather than by aborting
|
|
the connection inside mod_ssl. [Joe Orton]
|
|
|
|
*) core: Add optional "options=" argument to Listen. Supported
|
|
keywords are "freebind", "reuseport" and "v6only". PR 61865.
|
|
[Jan Kaluza, Lubos Uhliarik <luhliari redhat.com>, Joe Orton]
|
|
|
|
*) config: Allow for environment variable substitution with default value,
|
|
for when the variable is not defined, using format ${VAR?=default value}.
|
|
[Yann Ylavic]
|
|
|
|
*) htcacheclean: Empty directories in CacheRoot are still present even after
|
|
using "-t". PR64313 [Petros Marios Prokopiou <pprokopi redhat.com>,
|
|
Ruediger Pluem, Jean-Frederic Clere]
|
|
|
|
*) mod_reqtimeout: Cannot override default Virtualhost's mod_reqtimeout.
|
|
PR64295 [Jean-Frederic Clere]
|
|
|
|
*) mod_proxy: Allow ProxyErrorOverride to be restricted to specific status
|
|
codes. PR63628. [Martin Drößler <mail martindroessler.de>]
|
|
|
|
*) configtest: Issue a warning for non-existent directories in <Directory> config
|
|
sections. PR63079. [Stephane Blondon <stephane.blondon gmail.com>].
|
|
|
|
*) mod_proxy_http: Fix random memory-corruption in case of an error while
|
|
reading a response from the backend.
|
|
PR 64234 [Ruediger Pluem, Barnim Dzwillo <dzwillo@strato.de>]
|
|
|
|
*) core: Use a temporary file when writing the pid file, avoiding
|
|
startup failure if an empty pidfile is left over from a
|
|
previous crashed or aborted invocation of httpd. PR 63140.
|
|
[Nicolas Carrier <carrier.nicolas0 gmail.com>, Joe Orton]
|
|
|
|
*) mod_http2: Fixes issue where mod_unique_id would generate non-unique request
|
|
identifier under load, see <https://github.com/icing/mod_h2/issues/195>.
|
|
[Michael Kaufmann, Stefan Eissing]
|
|
|
|
*) mod_session_cookie: Add SessionCookieMaxAge to allow the mod_session
|
|
cookie to be sent as a "session cookie" with no expiration even when the
|
|
SessionMaxAge will be enforced on the server. PR56040 [Eric Covener]
|
|
|
|
*) mod_session: Fix an issue that blocked new sessions being created after
|
|
session expiration or other session errors. PR56052 [Eric Covener]
|
|
|
|
*) mod_proxy_hcheck: Allow healthcheck expressions to use %{Content-Type}.
|
|
PR64140. [Renier Velazco <renier.velazco upr.edu>]
|
|
|
|
*) mod_ssl: Fix memory leak of OCSP stapling response. [Yann Ylavic]
|
|
|
|
*) mod_authz_groupfile: Drop AH01666 from loglevel "error" to "info".
|
|
PR64172.
|
|
|
|
*) mod_usertrack: Add CookieSameSite, CookieHTTPOnly, and CookieSecure
|
|
to allow customization of the usertrack cookie. PR64077.
|
|
[Prashant Keshvani <prashant2400 gmail.com>, Eric Covener]
|
|
|
|
*) mpm_event: avoid possible KeepAlveTimeout off by -100 ms.
|
|
[Eric Covener, Yann Ylavic]
|
|
|
|
*) mod_md:
|
|
- Prefer MDContactEmail directive to ServerAdmin for registration. New directive
|
|
thanks to Timothe Litt (@tlhackque).
|
|
- protocol check for pre-configured "tls-alpn-01" challenge has been improved. It will now
|
|
check all matching virtual hosts for protocol support. Thanks to @mkauf.
|
|
- Corrected a check when OCSP stapling was configured for hosts
|
|
where the responsible MDomain is not clear, by Michal Karm Babacek (@Karm).
|
|
- Softening the restrictions where mod_md configuration directives may appear. This should
|
|
allow for use in <If> and <Macro> sections. If all possible variations lead to the configuration
|
|
you wanted in the first place, is another matter.
|
|
[Michael Kaufmann <mail michael-kaufmann.ch>, Timothe Litt (@tlhackque),
|
|
Michal Karm Babacek (@Karm), Stefan Eissing (@icing)]
|
|
|
|
*) core: ap_method_mask_t type added for method bitmasks, changed
|
|
from apr_int64_t and used for the method_mask field in
|
|
ap_method_list_t, AP_METHOD_BIT, allowed field of request_rec,
|
|
limited field of cmd_parms. PR 63885. [Joe Orton]
|
|
|
|
*) mod_ssl: Do not keep connections to OCSP responders alive when doing
|
|
OCSP requests. PR 64135. [Ruediger Pluem]
|
|
|
|
*) mod_ssl: Disable client verification on ACME ALPN challenges. Fixes github
|
|
issue mod_md#172 (https://github.com/icing/mod_md/issues/172).
|
|
[Michael Kaufmann <mail michael-kaufmann.ch>, Stefan Eissing]
|
|
|
|
*) mod_rewrite: Extend the [CO] (cookie) flag of RewriteRule to accept a
|
|
SameSite attribute. [Eric Covener]
|
|
|
|
*) Update DOCTYPE tags in server-generated HTML. PR62989.
|
|
[Andra Farkas <deepbluemistake gmail.com>, Giovanni Bechis <giovanni paclan.it>]
|
|
|
|
*) mod_setenvif: Passing an env-variable parameter of "--early" in non-perdir
|
|
context runs directives from this module before `RequestHeader ... early`
|
|
are evaluated. This allows results of SetEnvIf conditionals to be used
|
|
to modify request headers in early mode. [Eric Covener]
|
|
|
|
*) config: Speed up graceful restarts by using pre-hashed command table. PR 64066.
|
|
[Giovanni Bechis <giovanni paclan.it>, Jim Jagielski]
|
|
|
|
*) mod_lua: Add r:headers_in_table, r:headers_out_table, r:err_headers_out_table,
|
|
r:notes_table, r:subprocess_env_table as read-only native table alternatives
|
|
that can be iterated over. [Eric Covener]
|
|
|
|
*) configure: Add manualdir and proxycachedir to the APR_ENABLE_LAYOUT macro call.
|
|
[Graham Leggett]
|
|
|
|
*) Add support for cross compiling to apxs. If apxs is being executed from somewhere
|
|
other than its target location, add that prefix to includes and library directories.
|
|
Without this, apxs would fail to find config_vars.mk and exit. [Graham Leggett]
|
|
|
|
*) Add a config layout for OpenWRT. [Graham Leggett]
|
|
|
|
*) mod_http2: Fixed rare cases where a h2 worker could deadlock the main connection.
|
|
[Yann Ylavic, Stefan Eissing]
|
|
|
|
*) mod_lua: Accept nil assignments to the exposed tables (r.subprocess_env,
|
|
r.headers_out, etc) to remove the key from the table. PR63971.
|
|
[Eric Covener]
|
|
|
|
*) mod_http2: Fixed interaction with mod_reqtimeout. A loaded mod_http2 was disabling the
|
|
ssl handshake timeouts. Also, fixed a mistake of the last version that made `H2Direct`
|
|
always `on`, regardless of configuration. Found and reported by
|
|
<Armin.Abfalterer@united-security-providers.ch> and
|
|
<Marcial.Rion@united-security-providers.ch>. [Stefan Eissing]
|
|
|
|
*) mod_http2: Multiple field length violations in the same request no longer cause
|
|
several log entries to be written. [@mkauf]
|
|
|
|
*) mod_md: v2.2.4 from github, Fixes a compile time issue with OpenSSL 1.0.2 in
|
|
the new OCSP code. Skips port checks for domain server_rec selection when "tls-alpn-01"
|
|
is configured explicitly (related to #133). [@mkauf, Stefan Eissing]
|
|
|
|
*) mod_ssl: Support logging private key material for use with
|
|
wireshark via log file given by SSLKEYLOGFILE environment
|
|
variable. Requires OpenSSL 1.1.1. PR 63391. [Joe Orton]
|
|
|
|
*) mod_proxy: Improve tunneling loop to support half closed connections and
|
|
pending data draining (for protocols like rsync). PR 61616. [Yann Ylavic]
|
|
|
|
*) mod_proxy: Add proxy check_trans hook for proxy modules to possibly
|
|
decline request handling at early stage. [Yann Ylavic]
|
|
|
|
*) mod_proxy: Put mod_proxy_{connect,wstunnel} tunneling code in common in
|
|
proxy_util. [Yann Ylavic]
|
|
|
|
*) mod_proxy_http: Fix the forwarding of requests with content body when a
|
|
balancer member is unavailable; the retry on the next member was issued
|
|
with an empty body (regression introduced in 2.4.41). [Yann Ylavic]
|
|
|
|
*) mod_ssl: negotiate the TLS protocol version per name based vhost
|
|
configuration, when linked with OpenSSL-1.1.1 or later. The base vhost's
|
|
SSLProtocol (from the first vhost declared on the IP:port) is now only
|
|
relevant if no SSLProtocol is declared for the vhost or globally,
|
|
otherwise the vhost or global value apply. [Yann Ylavic]
|
|
|
|
*) mod_proxy_http: Fix 100-continue deadlock for spooled request bodies,
|
|
leading to Request Timeout (408). PR 63855. [Yann Ylavic]
|
|
|
|
*) mod_deflate, mod_brotli: honor "Accept-Encoding: foo;q=0" as per RFC 7231; which
|
|
means 'foo' is "not acceptable". PR 58158 [Chistophe Jaillet]
|
|
|
|
*) mod_proxy: Fix crash by resolving pool concurrency problems. PR 63503
|
|
[Ruediger Pluem, Eric Covener]
|
|
|
|
*) core: On Windows, fix a start-up crash if <IfFile ...> is used with a path that is not
|
|
valid (For example, testing for a file on a flash drive that is not mounted)
|
|
[Christophe Jaillet]
|
|
|
|
*) mod_proxy_balancer: Fix case-sensitive referer check related to CSRF/XSS
|
|
protection. PR63688. [Armin Abfalterer <a.abfalterer gmail.com>]
|
|
|
|
*) mod_authn_socache: Increase the maximum length of strings that can be cached by
|
|
the module from 100 to 256. PR 62149 [<thorsten.meinl knime.com>]
|
|
|
|
*) mod_ssl: reverting a 2.4.40 change where a superfluous SSLCertificateChainFile configuration
|
|
for a domain managed by mod_md caused a startup error. This happened when mod_md installed
|
|
its fallback certificate, before it got the first real certificate from Lets Encrypt.
|
|
[Stefan Eissing]
|
|
|
|
*) core, mod_rewrite: Set PCRE_DOTALL by default. Revert via
|
|
RegexDefaultOptions -DOTALL [Yann Ylavic]
|
|
|
|
*) core: Remove request details from built-in error documents [Eric Covener]
|
|
|
|
*) mod_http2: core setting "LimitRequestFieldSize" is not additionally checked on
|
|
merged header fields, just as HTTP/1.1 does. [Stefan Eissing, Michael Kaufmann]
|
|
|
|
*) mod_http2: fixed a bug that prevented proper stream cleanup when connection
|
|
throttling was in place. Stream resets by clients on streams initiated by them
|
|
are counted as possible trigger for throttling. [Stefan Eissing]
|
|
|
|
*) mod_http2/mpm_event: Fixes the behaviour when a HTTP/2 connection has nothing
|
|
more to write with streams ongoing (flow control block). The timeout waiting
|
|
for the client to send WINODW_UPDATE was incorrectly KeepAliveTimeout and not
|
|
Timeout as it should be. Fixes PR 63534. [Yann Ylavic, Stefan Eissing]
|
|
|
|
*) mod_ssl/mod_md: reversing dependency by letting mod_ssl offer hooks for
|
|
adding certificates and keys to a virtual host. An additional hook allows
|
|
answering special TLS connections as used in ACME challenges.
|
|
Adding 2 new hooks for init/get of OCSP stapling status information when
|
|
other modules want to provide those. Falls back to own implementation with
|
|
same behaviour as before.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_ssl: use OPENSSL_init_ssl() to initialise OpenSSL on versions 1.1+.
|
|
[Graham Leggett]
|
|
|
|
*) mod_proxy_http2: adding support for handling trailers in both directions. PR 63502.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_reqtimeout: Fix default rates missing (not applied) in 2.4.39.
|
|
PR 63325. [Yann Ylavic]
|
|
|
|
*) mod_ldap: Avoid potential crashes in util_ldap_cache_module_kill() or other
|
|
LDAP related functions during graceful restart of a busy server. PR63305.
|
|
[Martin Fúsek <mfusek newps.cz>]
|
|
|
|
*) mod_cache: Fix parsing of quoted Cache-Control token arguments.
|
|
PR 63288. [Yann Ylavic]
|
|
|
|
*) mod_md: Store permissions are enforced on file creation, enforcing restrictions in
|
|
spite of umask. Fixes <https://github.com/icing/mod_md/issues/117>. [Stefan Eissing]
|
|
|
|
*) mod_ssl: Correctly restore SSL verify state after TLSv1.3 PHA failure.
|
|
[Michael Kaufmann <mail michael-kaufmann.ch>]
|
|
|
|
*) Merge consecutive slashes in URL's. Opt-out with `MergeSlashes OFF`.
|
|
[Eric Covener]
|
|
|
|
*) mod_proxy/ssl: Cleanup per-request SSL configuration anytime a backend
|
|
connection is recycled/reused to avoid a possible crash with some SSLProxy
|
|
configurations in <Location> or <Proxy> context. PR 63256. [Yann Ylavic]
|
|
|
|
*) mod_mime: Add `MimeOptions` directive to allow Content-Type or all metadata
|
|
detection to use only the last (right-most) file extension or to be
|
|
disabled per-dir. [Eric Covener]
|
|
|
|
*) MPMs unix: bind the bucket number of each child to its slot number, for a
|
|
more efficient per bucket maintenance. [Yann Ylavic]
|
|
|
|
*) http: Fix possible empty response with mod_ratelimit for HEAD requests.
|
|
PR 63192. [Yann Ylavic]
|
|
|
|
*) mod_cache_socache: Avoid reallocations and be safe with outgoing data
|
|
lifetime. [Yann Ylavic]
|
|
|
|
*) mod_reqtimeout: Allow to configure (TLS-)handshake timeouts.
|
|
PR 61310. [Yann Ylavic]
|
|
|
|
*) mod_auth_digest: Fix a race condition. Authentication with valid credentials could be
|
|
refused in case of concurrent accesses from different users.
|
|
PR 63124 [Simon Kappel <simon.kappel axis.com>]
|
|
|
|
*) mod_ssl: Don't unset FIPS mode on restart unless it's forced by
|
|
configuration (SSLFIPS on) and not active by default in OpenSSL.
|
|
PR 63136. [Yann Ylavic]
|
|
|
|
*) mod_ssl: give mod_md the chance to override certificate after ALPN protocol
|
|
negotiation. [Stefan Eissing]
|
|
|
|
*) mod_proxy_wstunnel: Fix websocket proxy over UDS.
|
|
PR 62932 <pavel dcmsys.com>
|
|
|
|
*) mod_negociation: LanguagePriority should be case-insensitive in order to
|
|
match AddLanguage behavior. PR 39730 [Christophe Jaillet]
|
|
|
|
*) mod_session: Always decode session attributes early. [Hank Ibell]
|
|
|
|
*) core: Incorrect values for environment variables are substituted when
|
|
multiple environment variables are specified in a directive. [Hank Ibell]
|
|
|
|
*) core: Split out the ability to parse wildcard files and directories
|
|
from the Include/IncludeOptional directives into a generic set of
|
|
functions ap_dir_nofnmatch() and ap_dir_fnmatch(). [Graham Leggett]
|
|
|
|
*) mod_ssl: Fix mod_authz provider for "require ssl" directive to check correctly
|
|
on HTTP/2 connections. Fixes PR 62654. [Stefan Eissing]
|
|
|
|
*) mod_ssl: clear *SSL errors before loading certificates and checking
|
|
afterwards. Otherwise errors are reported when other SSL using modules
|
|
are in play. Fixes PR 62880. [Michael Kaufmann]
|
|
|
|
*) core: Ensure that aborted connections are logged as such. PR 62823
|
|
[Arnaud Grandville <contact@grandville.net>]
|
|
|
|
*) mpm_event: Stop issuing AH00484 "server reached MaxRequestWorkers..." when
|
|
there are still idle threads available. When there are less idle threads than
|
|
MinSpareThreads, issue new one-time message AH10159. Matches worker MPM.
|
|
[Eric Covener]
|
|
|
|
*) mod_proxy_scgi, mod_proxy_uwsgi: improve error handling when sending the
|
|
body of the response. [Jim Jagielski]
|
|
|
|
*) mod_session_cookie: avoid duplicate Set-Cookie header in the response.
|
|
[Emmanuel Dreyfus <manu@netbsd.org>, Luca Toscano]
|
|
|
|
*) mod_dav_fs: Set a default DAVLockDB within the state directory.
|
|
[Joe Orton]
|
|
|
|
*) core: Add DefaultStateDir and layout-specific state directory
|
|
created at "make install". [Joe Orton]
|
|
|
|
*) ab: Add client certificate support. [Graham Leggett]
|
|
|
|
*) mod_proxy_hcheck: Fix issues with TCP health checks. PR 61499
|
|
[Dominik Stillhard <dominik.stillhard united-security-providers.ch>]
|
|
|
|
*) MPMs: Initialize all runtime/asynchronous objects on a dedicated pool and
|
|
before signals handling to avoid lifetime issues on restart or shutdown.
|
|
PR 62658. [Yann Ylavic]
|
|
|
|
*) core: Add StrictHostCheck to allow unconfigured hostnames to be
|
|
rejected. [Eric Covener]
|
|
|
|
*) mod_status: Cumulate CPU time of exited child processes in the
|
|
"cu" and "cs" values. Add CPU time of the parent process to the
|
|
"c" and "s" values.
|
|
[Rainer Jung]
|
|
|
|
*) mod_status: Add cumulated response duration time in milliseconds.
|
|
[Rainer Jung]
|
|
|
|
*) mod_status: Complete the data shown for async MPMs in "auto" mode.
|
|
Added number of processes, number of stopping processes and number
|
|
of busy and idle workers. [Rainer Jung]
|
|
|
|
*) mod_proxy: Improve the balancer member data shown in mod_status when
|
|
"ProxyStatus" is "On": add "busy" count and show byte counts in auto
|
|
mode always in units of kilobytes. [Rainer Jung]
|
|
|
|
*) mod_proxy: If ProxyPassReverse is used for reverse mapping of relative
|
|
redirects, subsequent ProxyPassReverse statements, whether they are
|
|
relative or absolute, may fail. PR 60408. [Peter Haworth <pmh1wheel gmail.com>]
|
|
|
|
*) mod_ratelimit: Don't interfere with "chunked" encoding, fixing regression
|
|
introduced in 2.4.34. PR 62568. [Yann Ylavic]
|
|
|
|
*) mod_proxy_http: forward 100-continue, and minimize race conditions when
|
|
reusing backend connections. PR 60330. [Yann Ylavic, Jean-Frederic Clere]
|
|
|
|
*) mod_proxy: Remove load order and link dependency between mod_lbmethod_*
|
|
modules and mod_proxy. PR 62557. [Ruediger Pluem, William Rowe]
|
|
|
|
*) mod_md: more robust handling of http-01 challenges and hands-off when module
|
|
should not be involved, e.g. challenge setup by another ACME client. [Stefan Eissing]
|
|
|
|
*) ru, zh-cn and zh-tw translations of errordocs have been added.
|
|
Contributed by Alexander Gaganashvili and CodeingBoy
|
|
|
|
*) mod_userdir: If several directories are given in a UserDir directive, only files
|
|
in the first existing one are checked. If the file is not found there, the
|
|
other possible directories are not checked. The doc clearly states that they
|
|
will be checked one by one, until a match is found or an external redirect is
|
|
performed. PR 59636.
|
|
[Christophe Jaillet]
|
|
|
|
*) mod_rewrite: Only create the global mutex used by "RewriteMap prg:" when
|
|
this type of map is present in the configuration. PR62311.
|
|
[Hank Ibell <hwibell gmail.com>]
|
|
|
|
*) mod_ldap: Abort on LDAP locking errors. [Eric Covener]
|
|
|
|
*) mod_ssl: Support loading certificates and private keys from the
|
|
PKCS#11 OpenSSL engine. [Anderson Sasaki <ansasaki redhat.com>,
|
|
Joe Orton]
|
|
|
|
*) http: LimitRequestBody applies to proxied requests. [Yann Ylavic]
|
|
|
|
*) mod_logio: Add LogIOTrackTTFU and %^FU logformat to log the time
|
|
difference between request start and last request body byte read (finished upload).
|
|
[Rainer Jung]
|
|
|
|
*) mod_ssl: add support for TLSv1.3 (tested with OpenSSL v1.1.1-pre4, other libs may
|
|
need more sugar). SSL(Proxy)CipherSuite now has an optional first parameter for the
|
|
protocol the ciphers are for.
|
|
Directive "SSLVerifyClient" now triggers certificate retrieval from the client (this
|
|
is not fully tested - but fails in similar fashion as in TLSv1.2 in my setups).
|
|
Verifying the client fails exactly the same for HTTP/2 connections for all SSL protocols,
|
|
as this would need to trigger the master connection thread - which we do not support
|
|
right now.
|
|
Renegotiation of ciphers is intentionally ignored for TLSv1.3 connections. "SSLCipherSuite"
|
|
does not allow to specify TLSv1.3 ciphers in a directory context (because it cannot work) and
|
|
TLSv1.2 or lower ciphers are not relevant, as cipher suites are completely separate.
|
|
This means there is a bit if a world split when simultaneously having TLSv1.2 and TLSv1.3
|
|
connections to the same server.
|
|
[Yann Ylavic, Stefan Eissing]
|
|
|
|
*) mod_ssl: proper checks for libressl 2.07/8 and its TLSv1_3 support, see PR 62236.
|
|
[Bernard Spil <brnrd@freebsd.org>]
|
|
|
|
*) mod_cgi: Add CGIScriptTimeout to make mod_cgi's timeout per-directory and
|
|
independent of the core Timeout directive. PR 62229.
|
|
[Hank Ibell <hwibell gmail.com>]
|
|
|
|
*) mod_ssl: heavily simplified SSLPolicy. No more user defines, no propxy policies,
|
|
just the basic "modern", "intermediate" and "old" as specified by Mozilla security.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md: fixes error in renew window calculation that may lead to mod_md running
|
|
watchdog in a tight loop until actual renewal becomes necessary. [Stefan Eissing]
|
|
|
|
*) mod_md: /.well-known/acme-challenge requests that cannot be answered for hostnames
|
|
outside the configured MDs are free to be answered by other handlers. This allows
|
|
co-existance between mod_md and other ACME clients on the same server (implements PR62189).
|
|
[Stefan Eissing, Arkadiusz Miskiewicz <arekm@maven.pl>]
|
|
|
|
*) core: Create a conn_config_t structure to hold an extendable core config rather
|
|
than consuming the whole pointer with the connection socket. [Graham Leggett]
|
|
|
|
*) core: adding AP_DECLARE for ap_parse_vhost_addrs() and minor bump mmn. Resolves
|
|
building mod_ssl on Windows. [Stefan Eissing, Gregg Smith]
|
|
|
|
*) core: adding defines to allow interworking with honggfuzz without
|
|
further patches. [Stefan Eissing, Robert Swiecki]
|
|
|
|
*) mod_headers: 'RequestHeader set|edit|edit_r Content-Type X' could
|
|
inadvertently modify the Content-Type _response_ header. Applies to
|
|
Content-Type only and likely to only affect static file responses.
|
|
[Eric Covener]
|
|
|
|
*) mod_cgi: Improve AH01215 messages to make it more clear that the message is
|
|
the CGI scripts stderr output. PR 61980. [Hank Ibell <hwibell gmail.com>]
|
|
|
|
*) mod_headers: Allow 'Header unset Content-Type' to remove the Content-Type
|
|
header. PR 61983. [Hank Ibell <hwibell gmail.com>]
|
|
|
|
*) mod_md v1.1.8: new configuration directive "MDBaseServer on|off" to allow/inhibit
|
|
management of the base server domains outside VirtualHosts. By default, this is "off",
|
|
e.g. mod_md will not manage certificates or perform https: redirections on the
|
|
base server. [Stefan Eissing]
|
|
|
|
*) core: Add "AcceptErrorsNonFatal" to allow ECONNREFUSED, ECONNABORTED, and
|
|
ECONNRESET during the client accept() to not trigger graceful shutdown of
|
|
the child process. [Eric Covener]
|
|
|
|
*) mod_md v1.1.7:
|
|
- MDMustStaple was unable to create the necessary OpenSSL OBJ identifier on some platforms,
|
|
possibly because this fails if the OID is already configured in ```openssl.cnf```, see
|
|
[here](https://github.com/openssl/openssl/issues/2795).
|
|
- Two memory leaks in cert issuer and alt-names lookup eliminated by Yann Ylavic.
|
|
- Changing MDMustStaple triggers certificate renewal.
|
|
- More verbosity when *not* handing out certificates, e.g. mod_ssl asks, but mod_md has no
|
|
idea what it is talking about. Some people report misbehaviour here.
|
|
- Re-enabled support for md_get_credentials() function that was used in older mod_ssl
|
|
patch, so that people with old patched servers get a chance to upgrade.
|
|
[Stefan Eissing, Yann Ylavic]
|
|
|
|
*) mod_substitute: Allow expressions in the substitution, prefixed with expr=
|
|
[Eric Covener]
|
|
|
|
*) mod_md: fixed mem pool usage for auto-added server names. Added
|
|
error logging of exact ACME response when challenges failed.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md: reverses most of v1.0.5 optimization of post_config init, so that
|
|
mod_ssl can ask for certificates without crashing. [Stefan Eissing]
|
|
|
|
*) mod_proxy: allow SSLProxyCheckPeer* usage for all proxy modules.
|
|
PR 61857. [Yann Ylavic]
|
|
|
|
*) mod_proxy_html: fix handling of <meta http-equiv> elements.
|
|
PR 58121. [Nick Kew]
|
|
|
|
*) mod_md: fixed backward compatibility to old <ManagedDomain configuration.
|
|
Add higher level WARNING log when initial request to ACME server fails, mentioning
|
|
some advice. [Stefan Eissing]
|
|
|
|
*) mod_md: name change in configuration directives. The old names are still working
|
|
in this version, so you can safely upgrade. They will give warnings in the log and
|
|
will disappear in the immediate future. ManagedDomain is now MDomain,
|
|
<ManagedDomain> is now <MDomainSet>. [Stefan Eissing]
|
|
|
|
*) mod_ssl: renamed section <SSLPolicy to <SSLPolicyDefine. Fixed behaviour
|
|
for new server config merge flag. Denying global, only once used directives
|
|
inside a SSLPolicyDefine. [Stefan Eissing]
|
|
|
|
*) mod_auth_basic: Be less tolerant when parsing the credencial. Only spaces
|
|
should be accepted after the authorization scheme. \t are also tolerated.
|
|
[Christophe Jaillet]
|
|
|
|
*) core: Support zone/scope in IPv6 link-local addresses in Listen and
|
|
VirtualHost directives (requires APR 1.7.x or later). PR 59396. [Joe Orton]
|
|
|
|
*) mod_md: v1.0.5, restricting post_config dry run to be more silent and performing
|
|
only necessary work for mod_ssl to be also happy with the configuration.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md: v1.0.4, removed the 'a2md' utility command from build. Only used in github
|
|
testing. Avoid problems with our build system that had problems after the latest
|
|
changes to make a clean initial build. Remove the windows a2md.dsp therefore also.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_ssl: Fail with 403 if the username for FakeBasicAuth mode
|
|
includes a colon character. PR 52644. [Joe Orton]
|
|
|
|
*) mod_md: v1.0.3, fixed various bugs in persisting job properties, so that status is
|
|
persisted across child process changes and staging is reset on reloads. Changed
|
|
MDCertificateAgreement url checks. As long as the CA reports that the account has
|
|
an agreement, no further checking is done. Existing accounts need no changes when
|
|
a new agreement comes out. [Stefan Eissing]
|
|
|
|
*) mod_watchdog: Correct some log messages. [Rainer Jung]
|
|
|
|
*) mod_noloris: complete build setup. [Rainer Jung]
|
|
|
|
*) mod_md: fix static compilation. [Rainer Jung]
|
|
|
|
*) mod_md: fix compilation of helper binary a2md. [Rainer Jung]
|
|
|
|
*) core: fix pcre feature detection in configure when using pcre2. [Rainer Jung]
|
|
|
|
Changes with Apache 2.5.0-alpha
|
|
|
|
*) mod_speling: Add CheckBasenameMatch PR 44221. [Christophe Jaillet]
|
|
|
|
*) mod_md: v1.0.1, ServerName/Alias names from pure-http: virtual hosts are no longer
|
|
auto-added to a Managed Domain. Error counts of jobs are persisted. When the server
|
|
restarts (gracefully) any errored staging areas are purged to reset the signup/renewal
|
|
process. [Stefan Eissing]
|
|
|
|
*) mod_md: v1.0.0, new config directive 'MDNotifyCmd' to hook in a program when Managed
|
|
Domains have obtained/renewed their certificates successfully. [Stefan Eissing]
|
|
|
|
*) mod_md: v0.9.9, fix for applying challenge type based on available ports. [Stefan Eissing]
|
|
|
|
*) mod_md: v0.9.7
|
|
- Use of the new module flag
|
|
- Removed obsolete function from interface to mod_ssl.
|
|
- Fallback certificates has version set and no longer claims to be a CA. (re issue #32)
|
|
- MDRequireHttps now happens before any Redirect.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_ssl: unshare SSLSrvConfigRec instances between base server and virtual hosts. This avoids
|
|
overwrites of later initializattions (vhost_id), selective disables by "SSLEngine addr-list"
|
|
and certificate/key pickup from mod_md. [Stefan Eissing]
|
|
|
|
*) mod_md: v0.9.6: a "MDRequireHttps permanent" configured domain automatically sends out
|
|
HSTS (rfc 6797) headers in https: responses. [Stefan Eissing]
|
|
|
|
*) mod_ssl: adding ssl_policies.h[.in] for policy cipher/protocol definitions. Use
|
|
update_policies.py to update manually from Mozilla JSON definitions at
|
|
https://statics.tls.security.mozilla.org/server-side-tls-conf.json
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md: v0.9.5:
|
|
- New directive (srly: what do you expect at this point?) "MDMustStaple on|off" to control if
|
|
new certificates are requested with the OCSP Must Staple extension.
|
|
- Known limitation: when the server is configured to ditch and restart child processes, for example
|
|
after a certain number of connections/requests, the mod_md watchdog instance might migrate
|
|
to a new child process. Since not all its state is persisted, some messages might appear a
|
|
second time in the logs.
|
|
- Adding checks when 'MDRequireHttps' is used. It is considered an error when 'MDPortMap 443:-'
|
|
is used - which negates that a https: port exists. Also, a warning is logged if no
|
|
VirtualHost can be found for a Managed Domain that has port 443 (or the mapped one) in
|
|
its address list.
|
|
- New directive 'MDRequireHttps' for redirecting http: traffic to a Managed Domain, permanently
|
|
or temporarily.
|
|
- Fix for using a fallback certificate on initial signup of a Managed Domain. Requires also
|
|
a changed mod_ssl patch (v5) to take effect.
|
|
- compatibility with libressl
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md: v0.9.2: new directive 'MDHttpProxy' to define a proxy for outgoing connection,
|
|
some minor bugfixes, twiddle the build system to avoid non-pic code generation.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md: v0.9.1:
|
|
- various fixes in MDRenewWindow handling when specifying percent. Serialization changed. If
|
|
someone already used percent configurations, it is advised to change these to a new value,
|
|
reload and change back to the wanted ones.
|
|
- various fixes in handling of MDPrivateKeys when specifying 2048 bits (the default) explicitly.
|
|
- mod_md version removed from top level md_store.json file. The store has its own format version
|
|
to facilitate upgrades.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_md: v0.9.0:
|
|
Certificate provisioning from Let's Encrypt (and other ACME CAs) for mod_ssl virtual hosts.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_ssl: add SSLPolicy (define/use) and SSLProxyPolicy directives plus documentation. Add
|
|
core definitions for policies 'modern', 'intermediate' and 'old', as defined by Mozilla
|
|
in <https://wiki.mozilla.org/Security/Server_Side_TLS>. [Stefan Eissing]
|
|
|
|
*) mod_md: new module for managing domains across VirtualHosts with ACME protocol
|
|
implementation for automated certificate signup and renewal. Default CA is
|
|
the test area of Let's Encrypt right now, so certificates root will not be valid.
|
|
Will be switched to the real service endpoint rather soon. If you need it now,
|
|
configure 'MDCertificateAuthority https://acme-v01.api.letsencrypt.org/directory'.
|
|
[Stefan Eissing]
|
|
|
|
*) mod_rewrite: Add 'RewriteOptions LongURLOptimization' to free memory
|
|
from each set of unmatched rewrite conditions.
|
|
[Eric Covener]
|
|
|
|
*) Allow the argument to <IfFile>, <IfDefine>, <IfSection>, <IfDirective>,
|
|
and <IfModule> to be quoted. This is primarily for the benefit of
|
|
<IfFile>. [Eric Covener]
|
|
|
|
*) Introduce request taint checking framework to prevent privilege
|
|
hijacking through .htaccess. [Nick Kew]
|
|
|
|
*) Add <IfDirective> and <IfSection> directives. [Joe Orton]
|
|
|
|
*) When using mod_status with the Event MPM, report the number of requests
|
|
associated with an active connection in the "ACC" field. Previously
|
|
zero was always reported with this MPM. PR60647. [Eric Covener]
|
|
|
|
*) mod_proxy_wstunnel: Reliably run before mod_proxy_http.
|
|
[Eric Covener]
|
|
|
|
*) http: Allow unknown response status' lines returned in the form of
|
|
"HTTP/x.x xxx Status xxx". [Yann Ylavic]
|
|
|
|
*) core: Add <IfFile> configuration section to allow any file on disk to be
|
|
used as a conditional. [Edward Lu, Eric Covener]
|
|
|
|
*) mod_crypto: Add the all purpose crypto filters with support for HLS.
|
|
[Graham Leggett]
|
|
|
|
*) core: Drop an invalid Last-Modified header value coming
|
|
from a FCGI/CGI script instead of replacing it with Unix epoch.
|
|
Warn the users about Last-Modified header value replacements
|
|
and violations of the RFC.
|
|
[Yann Ylavic, Luca Toscano, William Rowe, Jacob Champion]
|
|
|
|
*) mod_dav: Allow other modules to become providers and add ACLs
|
|
to the DAV response.
|
|
[Jari Urpalainen <jari.urpalainen nokia.com>, Graham Leggett]
|
|
|
|
*) mod_dav: Add dav_begin_multistatus, dav_send_one_response,
|
|
dav_finish_multistatus, dav_send_multistatus, dav_handle_err,
|
|
dav_failed_proppatch, dav_success_proppatch to mod_dav.h.
|
|
[Jari Urpalainen <jari.urpalainen nokia.com>, Graham Leggett]
|
|
|
|
*) core: explicitly exclude 'h2' from protocols announced via an Upgrade:
|
|
header as commanded by http-wg. [Stefan Eissing]
|
|
|
|
*) mod_proxy_ajp: Add "secret" parameter to proxy workers to implement legacy
|
|
AJP13 authentication. PR 53098. [Dmitry A. Bakshaev <dab1818 gmail com>]
|
|
|
|
*) mpm: Generalise the ap_mpm_register_socket functions to accept pipes
|
|
or sockets. [Graham Leggett]
|
|
|
|
*) core: Extend support for setting aside data from the network input filter
|
|
to any connection or request input filter. [Graham Leggett]
|
|
|
|
*) core: Split ap_create_request() from ap_read_request(). [Graham Leggett]
|
|
|
|
*) mod_auth_digest: Fix compatibility with expression-based Authname. PR59039.
|
|
[Eric Covener]
|
|
|
|
*) mpm: Add a complete_connection hook that confirms whether an MPM is allowed
|
|
to leave the WRITE_COMPLETION phase. Move filter code out of the MPMs.
|
|
[Graham Leggett]
|
|
|
|
*) mod_cache: Consider Cache-Control: s-maxage in expiration
|
|
calculations. [Eric Covener]
|
|
|
|
*) mod_cache: Allow caching of responses with an Expires header
|
|
in the past that also has Cache-Control: max-age or s-maxage.
|
|
PR55156. [Eric Covener]
|
|
|
|
*) mod_session: Introduce SessionExpiryUpdateInterval which allows to
|
|
configure the session/cookie expiry's update interval. PR 57300.
|
|
[Paul Spangler <paul.spangler ni.com>]
|
|
|
|
*) core: Extend support for asynchronous write completion from the
|
|
network filter to any connection or request filter. [Graham Leggett]
|
|
|
|
*) mod_auth_digest: remove AuthDigestEnableQueryStringHack which is no
|
|
more documented since dec 2012 (r1415960). [Christophe Jaillet]
|
|
|
|
*) mod_charset_lite: On EBCDIC platforms, make sure mod_charset_lite runs
|
|
after other resource-level filters. [Eric Covener]
|
|
|
|
*) http: Don't remove the Content-Length of zero from a HEAD response if
|
|
it comes from an origin server, module or script. [Yann Ylavic]
|
|
|
|
*) http: Add support for RFC2324/RFC7168. [Graham Leggett]
|
|
|
|
*) mod_authn_core: Add expression support to AuthName and AuthType.
|
|
[Graham Leggett]
|
|
|
|
*) suexec: Filter out the HTTP_PROXY environment variable because it is
|
|
treated as alias for http_proxy by some programs. [Stefan Fritsch]
|
|
|
|
*) mod_proxy_http: Don't establish or reuse a backend connection before pre-
|
|
fetching the request body, so to minimize the delay between it is supposed
|
|
to be alive and the first bytes sent: this is a best effort to prevent the
|
|
backend from closing because of idle or keepalive timeout in the meantime.
|
|
Also, handle a new "proxy-flushall" environment variable which allows to
|
|
flush any forwarded body data immediately. PR 56541+37920. [Yann Ylavic]
|
|
|
|
*) core: Define and UnDefine are no longer permitted in
|
|
directory context. Previously they would always be evaluated
|
|
as the configuration was read without regard for the directory
|
|
context. [Eric Covener]
|
|
|
|
*) config: For directives that do not expect any arguments, enforce
|
|
that none are specified in the configuration file.
|
|
[Joachim Zobel <jzobel heute-morgen.de>, Eric Covener]
|
|
|
|
*) mod_rewrite: Improve 'bad flag delimeters' startup error by showing
|
|
how the input was tokenized. PR 56528. [Edward Lu <Chaosed0 gmail.com>]
|
|
|
|
*) mod_proxy: Don't put non balancer-member workers in error state by
|
|
default for connection or 500/503 errors, and honor status=+I for
|
|
any error. PR 48388. [Yann Ylavic]
|
|
|
|
*) ap_expr: Add filemod function for checking file modification dates
|
|
[Daniel Gruno]
|
|
|
|
*) mod_authnz_ldap: Resolve crashes with LDAP authz and non-LDAP authn since
|
|
r1608202. [Eric Covener]
|
|
|
|
*) apreq: Content-Length header should be always interpreted as a decimal.
|
|
Leading 0 could be erroneously considered as an octal value. PR 56598.
|
|
[Chris Card <ctcard hotmail com>]
|
|
|
|
*) mod_proxy: Now allow for 191 character worker names, with non-fatal
|
|
errors if name is truncated. PR53218. [Jim Jagielski]
|
|
|
|
*) mod_ssl: Add optional function "ssl_get_tls_cb" to allow support
|
|
for channel bindings. [Simo Sorce <simo redhat.com>]
|
|
|
|
*) mod_proxy_wstunnel: Concurrent websockets messages could be
|
|
lost or delayed with ProxyWebsocketAsync enabled.
|
|
[Edward Lu <Chaosed0 gmail.com>]
|
|
|
|
*) core, mod_info: Add compiled and loaded PCRE versions to version
|
|
number display. [Rainer Jung]
|
|
|
|
*) mod_authnz_ldap: Return LDAP connections to the pool before the handler
|
|
is run, instead of waiting until the end of the request. [Eric Covener]
|
|
|
|
*) mod_proxy_html: support automatic detection of doctype and processing
|
|
of FPIs. PR56285 [Micha Lenk <micha lenk info>, Nick Kew]
|
|
|
|
*) core: Add ap_mpm_resume_suspended() API to allow a suspended connection
|
|
to resume. PR56333
|
|
[Artem <artemciy gmail.com>, Edward Lu <Chaosed0 gmail.com>]
|
|
|
|
*) core: Add ap_mpm_register_socket_callback_timeout() API. [Eric Covener]
|
|
|
|
*) mod_proxy_wstunnel: Honor ProxyWebsocketIdleTimeout in asynchronous
|
|
processing mode. [Eric Covener]
|
|
|
|
*) mod_authnz_ldap: Fail explicitly when the filter is too long. Remove
|
|
unnecessary apr_pstrdup() and strlen(). [Graham Leggett]
|
|
|
|
*) Add the ldap-search option to mod_authnz_ldap, allowing authorization
|
|
to be based on arbitrary expressions that do not include the username.
|
|
[Graham Leggett]
|
|
|
|
*) Add the ldap function to the expression API, allowing LDAP filters and
|
|
distinguished names based on expressions to be escaped correctly to
|
|
guard against LDAP injection. [Graham Leggett]
|
|
|
|
*) Add module mod_ssl_ct, which provides an implementation of Certificate
|
|
Transparency (RFC 6962) for httpd. [Jeff Trawick]
|
|
|
|
*) mod_proxy_wstunnel: Avoid sending error responses down an upgraded
|
|
websockets connection as it is being close down. [Eric Covener]
|
|
|
|
*) mod_proxy_wstunnel: Allow the administrator to cap the amount
|
|
of time a synchronous websockets connection stays idle with
|
|
ProxyWebsocketIdleTimeout. [Eric Covener]
|
|
|
|
*) mod_proxy_wstunnel: Change to opt-in for asynchronous support, adding
|
|
directives ProxyWebsocketAsync and ProxyWebsocketAsyncDelay.
|
|
[Eric Covener]
|
|
|
|
*) mod_proxy_wstunnel: Stop leaking websockets backend connections under
|
|
event MPM (trunk-only). [Eric Covener]
|
|
|
|
*) mod_proxy_http: Add detach_backend hook (potentially usable
|
|
in other proxy scheme handlers). [Jeff Trawick]
|
|
|
|
*) mod_deflate: Add DeflateAlterETag to control how the ETag
|
|
is modified. The 'NoChange' parameter mimics 2.2.x behavior.
|
|
PR 45023, PR 39727. [Eric Covener]
|
|
|
|
*) mod_dir: Default to 2.2-like behavior and skip execution when method is
|
|
neither GET nor POST, such as for DAV requests. PR 54914. [Chris Darroch]
|
|
|
|
*) mod_rewrite: Rename the handler that does per-directory internal
|
|
redirects to "rewrite-redirect-handler" from "redirect-handler" so
|
|
it is less ambiguous and less likely to be reused. [Eric Covener]
|
|
|
|
*) mod_rewrite: Protect against looping with the [N] flag by enforcing a
|
|
default limit of 10000 iterations, and allowing each rule to change its
|
|
limit. [Eric Covener]
|
|
|
|
*) mod_ssl: Fix config merging of SSLOCSPEnable and SSLOCSPOverrideResponder.
|
|
[Jeff Trawick]
|
|
|
|
*) Add HttpContentLengthHeadZero and HttpExpectStrict directives.
|
|
[Yehuda Sadeh <yehuda inktank com>, Justin Erenkrantz]
|
|
|
|
*) mod_ssl: Add -t -DDUMP_CA_CERTS option which dumps the filenames of all
|
|
configured SSL CA certificates to stdout the same way as DUMP_CERTS does.
|
|
[Jan Kaluza]
|
|
|
|
*) mod_ssl: Don't flush when an EOS is received. Prepares mod_ssl
|
|
to support write completion. [Graham Leggett]
|
|
|
|
*) core: Add parse_errorlog_arg callback to ap_errorlog_provider
|
|
to allow providers to check the ErrorLog argument. [Jan Kaluza]
|
|
|
|
*) mod_cgid: Use the servers Timeout for each read from a CGI script,
|
|
allow override with new CGIDRequestTimeout directive. PR43494
|
|
[Eric Covener, Toshikuni Fukaya <toshikuni-fukaya cybozu co jp>]
|
|
|
|
*) core: ensure any abnormal exit is reported to stderr if it's a tty.
|
|
PR 55670 [Nick Kew]
|
|
|
|
*) mod_lua: Let the Inter-VM get/set functions work with a global
|
|
shared memory pool instead of a per-process pool. [Daniel Gruno]
|
|
|
|
*) ldap: Support ldaps when using the Microsoft LDAP SDK.
|
|
PR 54626. [Jean-Frederic Clere]
|
|
|
|
*) mod_authnz_ldap: Change default value of AuthLDAPMaxSubGroupDepth to 0
|
|
to avoid performance problems when subgroups aren't in use. [Eric Covener]
|
|
|
|
*) mod_syslog: New module implementing syslog ap_error_log provider.
|
|
Previously, this code was part of core, now it's in separate module.
|
|
[Jan Kaluza]
|
|
|
|
*) core: Add ap_errorlog_provider to make ErrorLog logging modular. Move
|
|
syslog support from core to new mod_syslog. [Jan Kaluza]
|
|
|
|
*) mod_status, mod_echo: Fix the display of client addresses.
|
|
They were truncated to 31 characters which is not enough for IPv6 addresses.
|
|
This is done by deprecating the use of the 'client' field and using
|
|
the new 'client64' field in worker_score.
|
|
PR 54848 [Bernhard Schmidt <berni birkenwald de>, Jim Jagielski]
|
|
|
|
*) core: merge AllowEncodedSlashes from the base configuration into
|
|
virtual hosts. [Eric Covener]
|
|
|
|
*) AIX: Install DSO's with "cp" instead of "install" in instdso.sh
|
|
[Eric Covener]
|
|
|
|
*) mod_ldap: Don't keep retrying if a new LDAP connection times out.
|
|
[Eric Covener]
|
|
|
|
*) mod_deflate: permit compilation of mod_deflate against a zlib that has
|
|
been configured with -D Z_PREFIX, which redefines the token "deflate".
|
|
[Eric Covener]
|
|
|
|
*) mod_auth_digest: Use the secret when generating nonces in all cases and
|
|
not only when AuthName is used in .htaccess files (this change may cause
|
|
problems if used with round robin load balancers). Don't regenerate the
|
|
secret on graceful restarts. PR 54637 [Stefan Fritsch]
|
|
|
|
*) core: Stop the HTTP_IN filter from attempting to write error buckets
|
|
to the output filters, which is bogus in the proxy case. Create a
|
|
clean mapping from APR codes to HTTP status codes, and use it where
|
|
needed. [Graham Leggett]
|
|
|
|
*) mod_dav: mod_dav overrides dav_fs response on PUT failure. PR 35981
|
|
[Basant Kumar Kukreja <basant.kukreja sun.com>, Alejandro Alvarez
|
|
<alejandro.alvarez.ayllon cern.ch>]
|
|
|
|
*) mod_ldap: LDAP connections used for authentication were not respecting
|
|
LDAPConnectionPoolTimeout. PR 54587
|
|
|
|
*) core: Add option to add valgrind support. Use it to reduce false positive
|
|
warnings in mod_ssl. [Stefan Fritsch]
|
|
|
|
*) mod_authn_file, mod_authn_dbd, mod_authn_dbm, mod_authn_socache:
|
|
Cache the result of the most recent password hash verification for every
|
|
keep-alive connection. This saves some expensive calculations.
|
|
[Stefan Fritsch]
|
|
|
|
*) http: Remove support for Request-Range header sent by Navigator 2-3 and
|
|
MSIE 3. [Stefan Fritsch]
|
|
|
|
*) core, http: Extend HttpProtocol with an option to enforce stricter HTTP
|
|
conformance or to only log the found problems. [Stefan Fritsch]
|
|
|
|
*) EventOpt MPM
|
|
|
|
*) core: Add LogLevelOverride directive that allows to override the
|
|
loglevel for clients from certain IPs. This also works for things
|
|
like the SSL handshake where <If> LogLevel ... </If> is evaluated
|
|
too late. [Stefan Fritsch]
|
|
|
|
*) core: Add new directive Warning to issue warnings from a configuration
|
|
file. Both Warning and Error now generate a timestamped log message.
|
|
[Fabien Coelho]
|
|
|
|
*) ap_expr: Add SERVER_PROTOCOL_VERSION, ..._MAJOR, and ..._MINOR
|
|
variables. [Stefan Fritsch]
|
|
|
|
*) core: New directive HttpProtocol which allows to disable HTTP/0.9
|
|
support. [Stefan Fritsch]
|
|
|
|
*) mod_allowhandlers: New module to forbid specific handlers for specific
|
|
directories. [Stefan Fritsch]
|
|
|
|
*) mod_systemd: New module, for integration with systemd on Linux.
|
|
[Jan Kaluza <jkaluza redhat.com>]
|
|
|
|
*) WinNT MPM: Store pid and generation for each thread in scoreboard
|
|
to allow tracking of threads from exiting children via mod_status
|
|
or other such mechanisms. [Jeff Trawick]
|
|
|
|
*) The following now respect DefaultRuntimeDir/DEFAULT_REL_RUNTIMEDIR:
|
|
- APIs: ap_log_pid(), ap_remove_pid, ap_read_pid()
|
|
- mod_cache: thundering herd lock directory
|
|
- mod_lbmethod_heartbeat, mod_heartmonitor: heartbeat storage file
|
|
- mod_ldap: shared memory cache
|
|
- mod_socache_shmcb, mod_socache_dbm: shared memory or dbm for cache
|
|
[Jeff Trawick]
|
|
|
|
*) mod_ssl: Add support for TLS Next Protocol Negotiation. PR 52210.
|
|
[Matthew Steele <mdsteele google.com>]
|
|
|
|
*) cross-compile: allow to provide CC_FOR_BUILD so that gen_test_char will
|
|
be compiled by the build compiler instead of the host compiler.
|
|
Also set CC_FOR_BUILD to 'cc' when cross-compilation is detected.
|
|
PR 51257. [Guenter Knauf]
|
|
|
|
*) core: In maintainer mode, replace apr_palloc with a version that
|
|
initializes the allocated memory with non-zero values, except if
|
|
AP_DEBUG_NO_ALLOC_POISON is defined. [Stefan Fritsch]
|
|
|
|
*) mod_policy: Add a new testing module to help server administrators
|
|
enforce a configurable level of protocol compliance on their
|
|
servers and application servers behind theirs. [Graham Leggett]
|
|
|
|
*) mod_firehose: Add a new debugging module able to record traffic
|
|
passing through the server in such a way that connections and/or
|
|
requests be reconstructed and replayed. [Graham Leggett]
|
|
|
|
*) mod_noloris
|
|
|
|
*) APREQ
|
|
|
|
*) Simple MPM
|
|
|
|
*) mod_serf
|
|
|
|
[Apache 2.5.0-dev includes those bug fixes and changes with the
|
|
Apache 2.4.xx tree as documented below, except as noted.]
|
|
|
|
Changes with Apache 2.4.x and later:
|
|
|
|
*) http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/CHANGES?view=markup
|
|
|
|
Changes with Apache 2.2.x and later:
|
|
|
|
*) http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?view=markup
|
|
|
|
Changes with Apache 2.0.x and later:
|
|
|
|
*) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup
|