commit 4be76416751aa22992a44f2f5cfdba506809fd89 Author: Dirkjan Bussink Date: Fri Sep 14 11:14:21 2018 +0200 MEDIUM: ssl: add support for ciphersuites option for TLSv1.3 OpenSSL released support for TLSv1.3. It also added a separate function SSL_CTX_set_ciphersuites that is used to set the ciphers used in the TLS 1.3 handshake. This change adds support for that new configuration option by adding a ciphersuites configuration variable that works essentially the same as the existing ciphers setting. Note that it should likely be backported to 1.8 in order to ease usage of the now released openssl-1.1.1. (cherry picked from commit 415150f7640b06740fa832363d186c5c6565338e) Signed-off-by: Willy Tarreau diff --git a/doc/configuration.txt b/doc/configuration.txt index 580194ec..7a268386 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -580,8 +580,10 @@ The following keywords are supported in the "global" section : - setenv - stats - ssl-default-bind-ciphers + - ssl-default-bind-ciphersuites - ssl-default-bind-options - ssl-default-server-ciphers + - ssl-default-server-ciphersuites - ssl-default-server-options - ssl-dh-param-file - ssl-server-verify @@ -984,11 +986,25 @@ setenv ssl-default-bind-ciphers This setting is only available when support for OpenSSL was built in. It sets the default string describing the list of cipher algorithms ("cipher suite") - that are negotiated during the SSL/TLS handshake for all "bind" lines which - do not explicitly define theirs. The format of the string is defined in - "man 1 ciphers" from OpenSSL man pages, and can be for instance a string such - as "AES:ALL:!aNULL:!eNULL:+RC4:@STRENGTH" (without quotes). Please check the - "bind" keyword for more information. + that are negotiated during the SSL/TLS handshake except for TLSv1.3 for all + "bind" lines which do not explicitly define theirs. The format of the string + is defined in "man 1 ciphers" from OpenSSL man pages, and can be for instance + a string such as "AES:ALL:!aNULL:!eNULL:+RC4:@STRENGTH" (without quotes). For + TLSv1.3 cipher configuration, please check the "ssl-default-bind-ciphersuites" + keyword. Please check the "bind" keyword for more information. + +ssl-default-bind-ciphersuites + This setting is only available when support for OpenSSL was built in and + OpenSSL 1.1.1 or later was used to build HAProxy. It sets the default string + describing the list of cipher algorithms ("cipher suite") that are negotiated + during the TLSv1.3 handshake for all "bind" lines which do not explicitly define + theirs. The format of the string is defined in + "man 1 ciphers" from OpenSSL man pages under the section "ciphersuites", and can + be for instance a string such as + "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256" + (without quotes). For cipher configuration for TLSv1.2 and earlier, please check + the "ssl-default-bind-ciphers" keyword. Please check the "bind" keyword for more + information. ssl-default-bind-options [