From: Dirkjan Bussink Date: Fri, 14 Sep 2018 09:14:21 +0000 (+0200) Subject: MEDIUM: ssl: add support for ciphersuites option for TLSv1.3 X-Git-Tag: v1.9-dev4~82 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=415150f7640b06740fa832363d186c5c6565338e;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/doc/configuration.txt b/doc/configuration.txt index d890b0b050..7c6684b942 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -583,8 +583,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 @@ -988,11 +990,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 [