[6e41fcb] | 1 | ** Version 0.10.0 (2020-02-03) |
---|
[f042405] | 2 | |
---|
[6e41fcb] | 3 | - Added support for stapling multiple OCSP responses (TLS 1.3 |
---|
[f042405] | 4 | only). mod_gnutls will staple for as many consecutive certificates |
---|
| 5 | in the certificate chain as possible. |
---|
| 6 | |
---|
[6e41fcb] | 7 | - Added support for TLS 1.3 post-handshake authentication, used if TLS |
---|
[f042405] | 8 | client authentication is required only for some resources on the |
---|
[6e41fcb] | 9 | server. Rehandshake (for older TLS versions) is not supported, the |
---|
| 10 | existing but broken code has been removed. |
---|
[f042405] | 11 | |
---|
[cc748329] | 12 | - The test infrastructure has been mostly rewritten in Python, note |
---|
[6e41fcb] | 13 | the new dependencies (Python 3, Pyyaml). Tests can run multiple TLS |
---|
| 14 | connections and HTTP(S) requests as well as custom hooks now, see |
---|
| 15 | test/README.md for details. |
---|
[f042405] | 16 | |
---|
[cc748329] | 17 | - Server certificates are checked for the must-staple TLS feature |
---|
[38bf158] | 18 | extension, stapling must be enabled if it is present. |
---|
[f042405] | 19 | |
---|
[cc748329] | 20 | - Compatibility fix for GnuTLS 3.6.11 in the test suite: Handle |
---|
[6e41fcb] | 21 | peer certificate type in TLS session information strings. |
---|
| 22 | |
---|
| 23 | - The test system will automatically detect if it needs to load |
---|
| 24 | critical modules (e.g. mod_logio) that are built-in with the Debian |
---|
| 25 | packages. This makes the tests work on Fedora without modifications, |
---|
| 26 | and likely on similar distributions too. |
---|
[38bf158] | 27 | |
---|
| 28 | - Tests can optionally run with Valgrind for the primary HTTPD |
---|
| 29 | instance by running ./configure with --enable-valgrind-test, see |
---|
| 30 | test/README.md for details. |
---|
[cc748329] | 31 | |
---|
[4b1687d] | 32 | - Known issue: When using MSVA client certificate validation the |
---|
| 33 | Valgrind tests indicate memory leaks from libcurl, which is used by |
---|
| 34 | libmsv to send requests to the MSVA. For details see the bug report: |
---|
| 35 | https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=950359 |
---|
| 36 | |
---|
[d4c9331] | 37 | ** Version 0.9.1 (2019-11-29) |
---|
| 38 | - Fix possible segfault (NULL pointer dereference) on failed TLS |
---|
| 39 | handshake. Calling ssl_var_lookup() after a failed handshake could |
---|
| 40 | lead to GnuTLS session information functions being called on a NULL |
---|
| 41 | session pointer, leading to segfault. |
---|
| 42 | - Remove URLs from expected error responses in the test suite. Apache |
---|
| 43 | HTTPD removed request URLs from canned error messages to prevent |
---|
| 44 | misleading text/links being displayed via crafted links |
---|
| 45 | (CVE-2019-10092). Adjust the expected error responses in our tests |
---|
| 46 | so they can pass again. |
---|
| 47 | - Test suite: Ignore "Content-Length" header of responses. Thanks to |
---|
| 48 | Krista Karppinen! |
---|
| 49 | - Add a section about module dependencies on socache to the handbook |
---|
| 50 | - Restructure the manpage build and move it to section 5 (config |
---|
| 51 | files) |
---|
| 52 | - Test suite: Restructure certificate directories |
---|
| 53 | |
---|
[510764a] | 54 | ** Version 0.9.0 (2019-01-23) |
---|
[96e2ea8] | 55 | - Security fix: Refuse to send or receive any data over a failed TLS |
---|
[510764a] | 56 | connection (commit 72b669eae8c45dda1850e8e5b30a97c918357b51). The |
---|
| 57 | previous behavior could lead to requests on reverse proxy TLS |
---|
| 58 | connections being sent in plain text, and might have allowed faking |
---|
| 59 | requests in plain text. |
---|
[96e2ea8] | 60 | - Security fix: Reject HTTP requests if they try to access virtual |
---|
| 61 | hosts that do not match their TLS connections (commit |
---|
| 62 | de3fad3c12f53cdbf082ad675e4b10f521a02811). Additionally check if SNI |
---|
[510764a] | 63 | and Host header match. Thanks to Krista Karppinen for contributing |
---|
| 64 | tests! |
---|
[96e2ea8] | 65 | - OCSP stapling is now enabled by default, if possible. OCSP responses |
---|
| 66 | are updated regularly and stored in a cache separate from the |
---|
| 67 | session cache. The OCSP cache uses mod_socache_shmcb by default |
---|
| 68 | (if the module is loaded, no other configuration required). |
---|
| 69 | - Session tickets are now enabled by default if using GnuTLS 3.6.4 or |
---|
| 70 | newer. GnuTLS 3.6.4 introduced automatic rotation for the used key, |
---|
| 71 | and TLS 1.3 takes care of other reasons not to use tickets while |
---|
| 72 | requiring them for session resumption. Note that there is currently |
---|
| 73 | no mechanism to synchronize ticket keys across a cluster of servers. |
---|
| 74 | - The internal cache implementation has been replaced with |
---|
| 75 | mod_socache. Users may need to update their GnuTLSCache settings and |
---|
| 76 | load the appropriate socache modules. |
---|
[0bed0a0] | 77 | - ALPN (required for HTTP/2) now works correctly with different |
---|
| 78 | "Protocols" directives between virtual hosts if building with GnuTLS |
---|
| 79 | 3.6.3 or newer. Older versions require identical "Protocols" |
---|
| 80 | directives for overlapping virtual hosts. Thanks to Vincent Tamet |
---|
| 81 | for the bug report! |
---|
[a900948] | 82 | - ALPN is now supported for proxy connections, making HTTP/2 proxy |
---|
| 83 | connections using mod_proxy_http2 possible. |
---|
[96e2ea8] | 84 | - GnuTLSPriorities is optional now and defaults to "NORMAL" if |
---|
| 85 | missing. The same applies to GnuTLSProxyPriorities (if TLS proxy is |
---|
| 86 | enabled). |
---|
| 87 | - The manual is now built as a manual page, too, if pandoc is |
---|
| 88 | available. |
---|
| 89 | - OpenPGP support has been removed. |
---|
[39a27cf] | 90 | - Don't require pem2openpgp for tests when building without MSVA |
---|
| 91 | support. |
---|
[96e2ea8] | 92 | |
---|
[e00a037] | 93 | ** Version 0.8.4 (2018-04-13) |
---|
[3c123cd] | 94 | - Support Apache HTTPD 2.4.33 API for proxy TLS connections |
---|
| 95 | - Support TLS for HTTP/2 connections with mod_http2 |
---|
| 96 | - Fix configuration of OCSP stapling callback |
---|
| 97 | |
---|
[2a912c3] | 98 | ** Version 0.8.3 (2017-10-20) |
---|
[2ae1c3c] | 99 | - Use GnuTLS' default DH parameters by default |
---|
| 100 | - Handle long Server Name Indication data and gracefully ignore |
---|
| 101 | unknown SNI types |
---|
[2a912c3] | 102 | - Send SNI for proxy connections |
---|
[2ae1c3c] | 103 | - Deprecate OpenPGP support like GnuTLS did (will be removed |
---|
| 104 | completely in a future release) |
---|
[2a912c3] | 105 | - Do not announce session ticket support for proxy connections |
---|
| 106 | - Minor documentation updates (SSL_CLIENT_I_DN, reference for SNI) |
---|
| 107 | - Test suite: Simplify handling of proxy backend servers and OCSP |
---|
| 108 | responders |
---|
[2ae1c3c] | 109 | - Test suite: stability/compatibility fixes |
---|
| 110 | |
---|
[0202d6b] | 111 | ** Version 0.8.2 (2017-01-08) |
---|
| 112 | - Test suite: Ensure CRLF line ends in HTTP headers |
---|
| 113 | - Test suite, gen_ocsp_index.c: Handle serial as fixed order byte array |
---|
| 114 | |
---|
[154db29] | 115 | ** Version 0.8.1 (2016-12-20) |
---|
| 116 | - Bugfix: Use APR_SIZE_T_FMT for portable apr_size_t formatting |
---|
| 117 | |
---|
[677754f] | 118 | ** Version 0.8.0 (2016-12-11) |
---|
[4bc17ae] | 119 | - New: Support for OCSP stapling |
---|
| 120 | - Bugfix: Access to DBM cache is locked using global mutex |
---|
| 121 | "gnutls-cache" |
---|
| 122 | - Bugfix: GnuTLSSessionTickets is now disabled by default as described |
---|
| 123 | in the handbook |
---|
| 124 | - Fixed memory leak while checking proxy backend certificate |
---|
| 125 | - Fixed memory leaks in post_config |
---|
| 126 | - Safely delete session ticket key (requires GnuTLS >= 3.4) |
---|
| 127 | - Improved error handling in post_config hook |
---|
| 128 | - Various handbook updates |
---|
[677754f] | 129 | - Internal API documentation can be generated using Doxygen |
---|
[4bc17ae] | 130 | - Unused code has been removed (conditionals for GnuTLS 2.x and Apache |
---|
| 131 | versions before 2.2, internal Lua bytecode structure last used in |
---|
| 132 | 2011). |
---|
| 133 | - Test suite: Fixed locking for access to the PGP keyring of the test |
---|
| 134 | certificate authority |
---|
| 135 | - mod_gnutls can be built using Clang (unsupported) |
---|
[460c048] | 136 | |
---|
[086cea9] | 137 | ** Version 0.7.5 (2016-05-28) |
---|
| 138 | - Sunil Mohan Adapa reported retry loops during session shutdown in |
---|
| 139 | cleanup_gnutls_session() due to gnutls_bye() incorrectly returning |
---|
| 140 | GNUTLS_E_INTERRUPTED or GNUTLS_E_AGAIN. Setting the GnuTLS session |
---|
| 141 | errno in mgs_transport_write() fixes the problem. |
---|
| 142 | - Import Daniel Kahn Gillmor's patches for GnuPG v2 support from the |
---|
| 143 | Debian package. |
---|
| 144 | - Build system improvements that allow VPATH builds and get "make |
---|
| 145 | distcheck" to work |
---|
| 146 | |
---|
[c6cfe6e] | 147 | ** Version 0.7.4 (2016-04-13) |
---|
| 148 | - Support SoftHSM 2 for PKCS #11 testing |
---|
| 149 | - Increase verbosity of test logs |
---|
| 150 | |
---|
[f0923c4] | 151 | ** Version 0.7.3 (2016-01-12) |
---|
| 152 | - Update test suite for compatibility with GnuTLS 3.4, which has |
---|
| 153 | stricter key usage checks and priorities than 3.3. |
---|
| 154 | - Write non-HTML output to mod_status reports if AP_STATUS_SHORT is |
---|
| 155 | set (mod_status sets it for requests with the "auto" parameter, e.g. |
---|
| 156 | https://localhost/server-status?auto). |
---|
| 157 | - Register "ssl_is_https" function so the special mod_rewrite variable |
---|
| 158 | %{HTTPS} works correctly with mod_gnutls. The new test case for this |
---|
| 159 | requires Wget or curl. Fixes Debian bug #514005. |
---|
| 160 | - Test suite servers listen on IPv4 *and* IPv6 loopback addresses by |
---|
| 161 | default (other addresses configurable), which should fix failures |
---|
| 162 | due to localhost randomly resolving to either on some distributions. |
---|
| 163 | - Isolate tests using network namespaces, if possible. This avoids |
---|
| 164 | port conflicts with other test cases (so they can run in parallel) |
---|
| 165 | and host services. |
---|
| 166 | - Support for local Apache drop-in config files in the test suite |
---|
| 167 | (e.g. to load additional modules needed on Fedora). |
---|
| 168 | - Try to use markdown to build HTML documentation if pandoc is not |
---|
| 169 | available. |
---|
| 170 | - Disable use of flock if it is unavailable or does not support |
---|
| 171 | timeouts (the latter caused the build to fail on Debian Hurd). |
---|
| 172 | - New test: Disable TLS 1.0 (regression test for Debian bug #754960). |
---|
| 173 | |
---|
[07cc51f] | 174 | ** Version 0.7.2 (2015-11-21) |
---|
| 175 | - Bugfix: Non-blocking reads in the input filter could lead to a busy |
---|
| 176 | wait in the gnutls_io_input_read function, causing high load on |
---|
| 177 | Keep-Alive connections waiting for data, until either more data |
---|
| 178 | could be received or the connection was closed. The fix is to pass |
---|
| 179 | EAGAIN/EINTR results up to the input filter so they can be handled |
---|
| 180 | properly. |
---|
| 181 | - Close TLS session if the input filter receives EOF (mostly relevant |
---|
| 182 | for proper termination of proxy connections). |
---|
| 183 | - Remove dependency on APR Memcache, which is replaced by the newer |
---|
| 184 | version included in the APR Utility Library (libaprutil). |
---|
| 185 | - Remove dependency on bc. It was used for floating point arithmetic |
---|
| 186 | in the test suite, the calculations have been changed to use |
---|
| 187 | integers and pure bash code. |
---|
| 188 | |
---|
[71cac80] | 189 | ** Version 0.7.1 (2015-10-18) |
---|
| 190 | - Improved handling of PKCS #11 modules: mod_gnutls now loads either |
---|
| 191 | modules specified using GnuTLSP11Module, or the system defaults, but |
---|
| 192 | not both. Thanks to Nikos Mavrogiannopoulos for the report and |
---|
| 193 | initial patch! |
---|
| 194 | - Initialize variables to safe defaults during client certificate |
---|
| 195 | verification. Certain error code paths did not set them, but they |
---|
| 196 | should never be hit due to config validation. This adds another line |
---|
| 197 | of defense. |
---|
| 198 | - Enable C99 support via autoconf |
---|
| 199 | - Test suite improvements. Most importantly, automake now handles |
---|
| 200 | environment setup without any external make calls. Rules to build |
---|
| 201 | the certificates are included from the old test makefile. Note that |
---|
| 202 | the dependency on GNU make is not new (the test makefile always used |
---|
| 203 | GNU make syntax), it just wasn't listed explicitly. |
---|
| 204 | |
---|
[ff46fc2] | 205 | ** Version 0.7 (2015-07-12) |
---|
[90d8480] | 206 | - Security fix for TLS client authentication (CVE-2015-2091) |
---|
[94a7c7a] | 207 | - Bug fixes that enable support for reverse proxy operation |
---|
[90d8480] | 208 | - Various test suite improvements. Tests are configured through autoconf, |
---|
| 209 | so the test suite now works for builds without Monkeysphere support. |
---|
| 210 | - Add support for TLS connections to back end servers when operating as a |
---|
| 211 | reverse proxy (X.509 authentication only at the moment). |
---|
| 212 | - PKCS #11 support for server keys and certificates |
---|
[94a7c7a] | 213 | - Use strict compiler arguments by default (-Wall -Werror -Wextra) |
---|
| 214 | - Allow limiting the size of certificates exported as SSL_SERVER_CERT |
---|
| 215 | and SSL_CLIENT_CERT through the GnuTLSExportCertificates directive |
---|
[90d8480] | 216 | |
---|
[460c048] | 217 | ** Version 0.6 (2014-02-17) |
---|
| 218 | - Generating DH Params instead of using static ones. |
---|
| 219 | - Now considering ServerAlias Directives. |
---|
| 220 | - Major Legacy Code Cleanup. |
---|
| 221 | - html and pdf and manual documentation generated from markdown sources |
---|
| 222 | - support monkeysphere validation agent (MSVA) client-certificate verification |
---|
| 223 | - wider test suite |
---|
| 224 | - GnuTLSExportCertificates off by default |
---|
[9ee7549] | 225 | |
---|
| 226 | ** Version 0.5.10 (2011-07-12) |
---|
[460c048] | 227 | - Patched a bug responsible for excessive memory consumption by mod_gnutls. |
---|
| 228 | - Support for proxying from SSL to plain HTTP was added (ie. proxy termination). |
---|
[9ee7549] | 229 | |
---|
| 230 | ** Version 0.5.9 (2010-09-24) |
---|
| 231 | - GnuTLSCache none is now an allowed option. |
---|
| 232 | - Corrected behavior in Keep-Alive connections (do not |
---|
| 233 | terminate the connection prematurely) |
---|
| 234 | - The GnuTLSCache variable now can be given the specific |
---|
| 235 | option "gdbm" instead of "dbm". "dbm" will use the berkeley |
---|
| 236 | db type of libapr while gdbm will force gdbm to be used. |
---|
| 237 | sdbm is no longer being used due to serious limitations. |
---|
| 238 | |
---|
| 239 | ** Version 0.5.8 (2010-08-18) |
---|
| 240 | - Session tickets are enabled by default. |
---|
| 241 | - Fixes some segmentation faults noticed in some |
---|
| 242 | configurations. |
---|
| 243 | |
---|
| 244 | ** Version 0.5.7 (2010-07-01) |
---|
| 245 | - Force usage of SDBM. For some reason the default in |
---|
| 246 | my system had issues after reaching a limit of entries. |
---|
| 247 | SDBM seems stable so force it. |
---|
| 248 | - Optimizations in session caching. |
---|
| 249 | - Added support for session tickets. This allows a |
---|
| 250 | server to avoid using a session cache and still support |
---|
| 251 | session resumption. This is at the cost of transporting |
---|
| 252 | session data during handshake. New option |
---|
| 253 | GnuTLSSessionTickets [on|off] |
---|
| 254 | - Depend on gnutls 2.10.0 to force support for safe |
---|
| 255 | renegotiation. |
---|
| 256 | |
---|
| 257 | ** Version 0.5.6 (2010-03-24) |
---|
| 258 | - Corrected issue with firefox and long POST data (by |
---|
| 259 | handling EINTR and EAGAIN errors in read). |
---|
| 260 | - Added support for chained client certificates |
---|
| 261 | - Corrected more issues related to double frees |
---|
| 262 | http://issues.outoforder.cc/view.php?id=102 |
---|
| 263 | |
---|
| 264 | ** Version 0.5.5 (2009-06-13) |
---|
| 265 | - Removed limits on CA certificate loading. Reported by |
---|
| 266 | Sander Marechal and Jack Bates. |
---|
| 267 | - Do not allow sending empty TLS packets even when instructed to. |
---|
| 268 | This had the side effect of clients closing connection. |
---|
| 269 | |
---|
| 270 | ** Version 0.5.4 (2009-01-04) |
---|
| 271 | - mod_gnutls.h: modified definition to extern to avoid compilation |
---|
| 272 | errors in darwin. |
---|
| 273 | - Added patch to fix issue with mod_proxy. Investigation and patch by Alain |
---|
| 274 | Knaff. |
---|
| 275 | - libgnutls detection uses pkg-config. |
---|
| 276 | |
---|
| 277 | ** Version 0.5.3 (2008-10-16) |
---|
| 278 | - Corrected bug to allow having an OpenPGP-only web site. |
---|
| 279 | - Increased Max handshake tries due to interrupted system calls. |
---|
| 280 | |
---|
| 281 | ** Version 0.5.2 (2008-06-29) |
---|
| 282 | - Depend on gnutls 2.4 which has openpgp support in main library. |
---|
| 283 | |
---|
| 284 | ** Version 0.5.1 (2008-03-05) |
---|
| 285 | - Added --disable-srp configure option |
---|
| 286 | - Better check for memcache (patch by Guillaume Rousse) |
---|
| 287 | - Corrected possible memory leak in DBM support for resuming sessions. |
---|
| 288 | |
---|
| 289 | ** Version 0.5.0-alpha (2008-01-24) |
---|
| 290 | - Added support for OpenPGP keys. The new directives are: |
---|
| 291 | GnuTLSPGPKeyringFile, GnuTLSPGPCertificateFile, GnuTLSPGPKeyFile |
---|
| 292 | |
---|
| 293 | ** Version 0.4.2 (2007-12-10) |
---|
| 294 | - Added support for sending a certificate chain. |
---|
| 295 | - Corrected bug which did not allow the TLS session cache to be used. |
---|
| 296 | - Do not allow resuming sessions on different servers. |
---|
| 297 | |
---|
| 298 | ** Version 0.4.1 (2007-12-03) |
---|
| 299 | - Added support for subject alternative names in certificates. |
---|
| 300 | Only one per certificate is supported. |
---|
[90d8480] | 301 | - New enviroment variables: SSL_CLIENT_M_VERSION, SSL_CLIENT_S_SAN%, |
---|
[9ee7549] | 302 | SSL_CLIENT_S_TYPE, SSL_SERVER_M_VERSION, SSL_SERVER_S_SAN%, SSL_SERVER_S_TYPE |
---|
| 303 | - The compatibility mode can now be enabled explicitely with the |
---|
| 304 | %COMPAT keyword at the GnuTLSPriorities string. It is no longer the default. |
---|
| 305 | - Check for GnuTLSPriorities directive. This corrects a segfault. Thanks |
---|
| 306 | to David Hrbáč. |
---|
| 307 | - Better handling of GnuTLSDHFile and GnuTLSRSAFile. |
---|
| 308 | - No longer default paths for RSA and DH parameter files. |
---|