Project

General

Profile

Actions

Bug #2977

closed

SSL routines:ciphersuite_cb:no cipher match

Added by Anonymous over 4 years ago. Updated over 4 years ago.

Status:
Invalid
Priority:
Normal
Category:
TLS
Target version:
-
ASK QUESTIONS IN Forums:

Description

After upgrading from 1.4.50 (where the issue was not present) to 1.4.54 the server fails to start with

SSL routines:ciphersuite_cb:no cipher match

This happens with

ssl.cipher-list = "CHACHA20-POLY1305-SHA256:AES-256-GCM_SHA384:AES-128-GCM-SHA256" 
ssl.cipher-list = "CHACHA20_POLY1305_SHA256:AES_256_GCM_SHA384:AES_128_GCM_SHA256" 
ssl.cipher-list = "TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256" 
ssl.cipher-list = "TLS-CHACHA20-POLY1305-SHA256:TLS-AES-25-_GCM-SHA384:TLS-AES-128-GCM-SHA256" 

And similarly happens also with

ssl.openssl.ssl-conf-cmd = ("Ciphersuites" => "named cipher suite")

I am basically coding illiterate, just it would seem that with https://redmine.lighttpd.net/projects/lighttpd/repository/revisions/8efa6a34f4a055bb184a5303e94bafdb994bbddd/diff/src/mod_openssl.c

CONST_STR_LEN("HIGH")

the cipher suite is constraint to HIGH and thus causes the failure and in turn preventing to user to set a customised cipher order/list

Actions #1

Updated by stbuehler over 4 years ago

Hi!

Can you please post the full error message? We need to see where it fails (and whether it is actually about failing to start or failing to accept connections from old clients).

HIGH shouldn't prevent your server from starting; the only reason I can think of why it might fail is if you're using small keys which are not acceptable anymore.

Also you didn't mention which OS you're on and which openssl versions your 1.4.50 and 1.4.54 were linked with; more recent openssl versions became more strict about lots of things (i.e. again small keys, ...).

Actions #2

Updated by Anonymous over 4 years ago

It fails to start

/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

(mod_openssl.c.983) SSL: error:1410D0B9:SSL routines:SSL_CTX_set_cipher_list:no cipher match
(server.c.1240) Initialization of plugins failed. Going down.

Set to HIGH the server starts but it prevents me from setting the order to cipher suites the server sets for the client.

That is with

ssl.openssl.ssl-conf-cmd = ( "Protocol" => "-ALL, +TLSv1.3" )

key size being of the private key that been used for the cert generation? Which is in this case

RSA Private-Key: (2048 bit, 2 primes)

And for sake of completeness

lighttpd - 1.4.54-1.0
lighttpd-https-cert - 5-0.0
lighttpd-mod-alias - 1.4.54-1.0
lighttpd-mod-cgi - 1.4.54-1.0
lighttpd-mod-fastcgi - 1.4.54-1.0
lighttpd-mod-openssl - 1.4.54-1.0
lighttpd-mod-proxy - 1.4.54-1.0
lighttpd-mod-redirect - 1.4.54-1.0
lighttpd-mod-setenv - 1.4.54-1.0
OpenSSL 1.1.1c

Is my assumption about the cipher suite being constraint to HIGH, as introduced in mod_openssl.c, wrong then?

Actions #3

Updated by stbuehler over 4 years ago

This seems to work fine on my system:

ssl.cipher-list = "HIGH" 
ssl.openssl.ssl-conf-cmd = ( "Protocol" => "-ALL, +TLSv1.3" )

Perhaps you can try to find the minimal config that isn't starting for you and post that.

Actions #4

Updated by Anonymous over 4 years ago

HIGH works, as I mentioned in previous post.

Not working after the update from .5*0* to .5*4*

ssl.cipher-list = "CHACHA20-POLY1305-SHA256:AES-256-GCM-SHA384:AES-128-GCM-SHA256" 

and neither is

ssl.openssl.ssl-conf-cmd = ( "Ciphersuites" => "CHACHA20-POLY1305-SHA256:AES-256-GCM-SHA384:AES-128-GCM-SHA256" )

either ending up with

SSL routines:ciphersuite_cb:no cipher match

Actions #5

Updated by stbuehler over 4 years ago

  • Status changed from New to Invalid
  • Target version deleted (1.4.x)

Well, openssl ciphers '...' doesn't like your cipherstring either, so I'd say openssl got more strict about parsing those, and your 1.4.50 binary was linked against an older version.

$ openssl ciphers -v 'CHACHA20-POLY1305-SHA256:AES-256-GCM-SHA384:AES-128-GCM-SHA256'
Error in cipher list
140175423665280:error:1410D0B9:SSL routines:SSL_CTX_set_cipher_list:no cipher match:../ssl/ssl_lib.c:2549:

In any case there is nothing we can do about which ciphers openssl accepts or not.

Actions #6

Updated by Anonymous over 4 years ago

For TLS1.3 there is special value

-ciphersuites val Configure the TLSv1.3 ciphersuites to use

try

openssl ciphers -ciphersuites TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256
Actions

Also available in: Atom