haproxy/tests
Willy Tarreau 2ab88675ec MINOR: ssl: compare server certificate names to the SNI on outgoing connections
When support for passing SNI to the server was added in 1.6-dev3, there
was no way to validate that the certificate presented by the server would
really match the name requested in the SNI, which is quite a problem as
it allows other (valid) certificates to be presented instead (when hitting
the wrong server or due to a man in the middle).

This patch adds the missing check against the value passed in the SNI.
The "verifyhost" value keeps precedence if set. If no SNI is used and
no verifyhost directive is specified, then the certificate name is not
checked (this is unchanged).

In order to extract the SNI value, it was necessary to make use of
SSL_SESSION_get0_hostname(), which appeared in openssl 1.1.0. This is
a trivial function which returns the value of s->tlsext_hostname, so
it was provided in the compat layer for older versions. After some
refinements from Emmanuel, it now builds with openssl 1.0.2, openssl
1.1.0 and boringssl. A test file was provided to ease testing all cases.

After some careful observation period it may make sense to backport
this to 1.7 and 1.6 as some users rightfully consider this limitation
as a bug.

Cc: Emmanuel Hocdet <manu@gandi.net>
Signed-off-by: Willy Tarreau <w@1wt.eu>
2017-07-06 15:15:28 +02:00
..
0000-debug-stats.diff BUG/MAJOR: trash must always be the size of a buffer 2012-05-16 14:21:55 +02:00
blocksig.c TESTS: add blocksig.c to run tests with all signals blocked 2016-04-20 10:53:12 +02:00
filltab25.c CLEANUP: remove unneeded casts 2016-04-03 14:17:42 +02:00
hash_results.txt [TESTS] updates to hash experimentations 2007-05-13 11:40:04 +02:00
hashing-results.txt DOC: Documentation for hashing function, with test results. 2013-11-20 22:14:47 +01:00
io_limits.txt [MEDIUM] optimize I/O by detecting system starvation 2007-06-03 16:05:39 +02:00
ip-hash.c [TESTS] add new methods in ip-hash test file 2008-04-13 09:27:00 +02:00
reset.c [TESTS] add a simple program to test connection resets 2010-03-25 06:38:21 +01:00
sockstat.txt
test-acl-args.cfg TESTS: add regression tests for ACL and sample expression parsers 2013-12-13 01:35:08 +01:00
test-address-syntax.cfg [TESTS] provide a test case for various address formats 2011-03-23 22:49:57 +01:00
test-arg.c MEDIUM: add a new typed argument list parsing framework 2012-05-08 20:57:10 +02:00
test-backlog.cfg [MINOR] add support for the "backlog" parameter 2008-01-06 10:55:10 +01:00
test-check-expect.cfg [TESTS] add test-check-expect to test various http-check methods 2010-10-30 19:04:32 +02:00
test-connection.cfg [TESTS] add a file to test various connection modes 2010-01-05 14:35:03 +01:00
test-cookie-indirect.cfg [MEDIUM] http: fix space handling in the request cookie parser 2010-09-01 00:02:21 +02:00
test-cookie-insert.cfg [MEDIUM] http: fix space handling in the request cookie parser 2010-09-01 00:02:21 +02:00
test-cookie-passive.cfg [MEDIUM] http: fix space handling in the request cookie parser 2010-09-01 00:02:21 +02:00
test-cookie-prefix.cfg [MEDIUM] http: fix space handling in the request cookie parser 2010-09-01 00:02:21 +02:00
test-cookie-rewrite.cfg [MEDIUM] http: fix space handling in the request cookie parser 2010-09-01 00:02:21 +02:00
test-disable-404.cfg [TESTS] add a test file for disable-on-404 2007-11-30 15:23:38 +01:00
test-fsm.cfg [TESTS] refine non-regression tests and add 4 new tests 2010-06-07 22:43:55 +02:00
test-fwlc.cfg [MAJOR] implementation of the "leastconn" load balancing algorithm 2008-03-10 22:04:30 +01:00
test-fwrr.cfg [TESTS] merge test-fwrr.cfg to validate dynamic weights 2007-11-28 14:23:32 +01:00
test-handshakes-chk.cfg TESTS: add a test configuration to stress handshake combinations 2017-03-19 11:59:47 +01:00
test-handshakes.cfg TESTS: add a test configuration to stress handshake combinations 2017-03-19 11:59:47 +01:00
test-http-send-name-hdr.cfg MEDIUM: http: add support for sending the server's name in the outgoing request 2012-01-05 15:17:31 +01:00
test-inspect-smtp.cfg [MINOR] acl: add the "wait_end" acl verb 2008-07-20 11:18:28 +02:00
test-inspect-ssl.cfg [MINOR] acl: add req_ssl_ver in TCP, to match an SSL version 2008-07-16 10:30:06 +02:00
test-map-ports.cfg [TESTS] add a test case for port mapping 2008-04-12 11:19:04 +02:00
test-pollers.cfg [TESTS] add test-pollers.cfg to easily report pollers in use 2008-02-16 20:02:48 +01:00
test-redirect.cfg [MINOR] redirect: in prefix mode a "/" means not to change the URI 2008-12-07 23:48:39 +01:00
test-sample-fetch-args.cfg TESTS: add regression tests for ACL and sample expression parsers 2013-12-13 01:35:08 +01:00
test-sample-fetch-conv.cfg TESTS: add regression tests for ACL and sample expression parsers 2013-12-13 01:35:08 +01:00
test-sql.cfg [MINOR] add better support to "mysql-check" 2010-10-30 19:04:35 +02:00
test-srv-verify.cfg MINOR: ssl: compare server certificate names to the SNI on outgoing connections 2017-07-06 15:15:28 +02:00
test-str2sa.cfg MINOR: tests: add a config file to ease address parsing tests. 2013-02-20 19:23:44 +01:00
test-time.cfg [MEDIUM] add support for time units in the configuration 2007-12-02 22:15:14 +01:00
test-timeout.cfg [MEDIUM] introduce "timeout http-request" in frontends 2008-01-06 13:24:40 +01:00
test-url-hash.cfg [TESTS] update the url_param regression test to test check_post too 2011-03-01 20:43:27 +01:00
test-valid-names.cfg [MEDIUM] restrict the set of allowed characters for identifiers 2007-12-02 18:45:09 +01:00
test.c
test_hashes.c [TESTS] added a new hash algorithm 2007-09-09 21:13:47 +02:00
test_pools.c
testinet.c
uri_hash.c [TESTS] updates to hash experimentations 2007-05-13 11:40:04 +02:00