Details
- 
    Bug 
- 
    Status: Closed (View Workflow)
- 
    Major 
- 
    Resolution: Not a Bug
- 
    2.4.2, 2.4.3
- 
    None
Description
running
| 	mariadb --version | 
| 		mariadb  Ver 15.1 Distrib 10.4.7-MariaDB, for Linux (x86_64) using readline 5.1
 | 
and, Connector-J built from head
| git log | head | 
| 	commit 8b2f79cf1bf77684d924018f51807d8bd3be5c49 | 
| 	Author: rusher <diego.dupin@gmail.com> | 
| 	Date:   Mon Jun 17 14:42:12 2019 +0200 | 
|  | 
| 	    [misc] correction test for multi-insert value | 
|  | 
| 	commit c160500cc2e7eb423c37cc72f2c95151e67954f5 | 
| 	Merge: 94465b67 c9a86cf7 | 
| 	Author: rusher <diego.dupin@gmail.com> | 
| 	Date:   Mon Jun 17 14:27:07 2019 +0200
 | 
with a MDB SSL config of
| 	[server] | 
| 	tls_version = TLSv1.3 | 
| 	... | 
|  | 
| 	[client] | 
| 	tls_version = TLSv1.3 | 
| 	...
 | 
and an openssl 1.1.1c config defining cipher prefence order,
| 	/etc/ssl/openssl.cnf | 
| 		... | 
| 		[system_default_sect] | 
| 		Ciphersuites = TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256 | 
| 		Options = ServerPreference,PrioritizeChaCha
 | 
on mysql client connect, the connection correctly uses TLSv1.3 protocol, and the preferred/spec'd cipher
| 	mysql << EOF | 
| 	 SHOW SESSION STATUS LIKE 'Ssl_version'; | 
| 	 SHOW SESSION STATUS LIKE 'Ssl_cipher'; | 
| 	EOF | 
|  | 
| 		Variable_name   Value | 
| 		Ssl_version     TLSv1.3 | 
| 		Ssl_cipher      TLS_CHACHA20_POLY1305_SHA256
 | 
OTOH, checking JDBC connection with sqlline, using MDB Connector-J 2.4.2's provided class,
| 	java -cp "/usr/local/src/sqlline/target/*:/usr/local/etc/mariadb/connector-j/*" sqlline.SqlLine . | 
|  | 
| 		!connect jdbc:mysql://db.pgnd.lan:3306/mysql?&useSSL=true&enabledSslProtocolSuites=TLSv1.3&enabledSslCipherSuites=TLS_CHACHA20_POLY1305_SHA256&verifyServerCertificate=true&disableSslHostnameVerification=false&serverSslCert=/etc/ssl/myCA.pem.pem&jdbcCompliantTruncation=false&autoReconnect=true testuser "testpass"
 | 
connection FAILs,
| 	Error: Unsupported SSL cipher 'TLS_CHACHA20_POLY1305_SHA256'. Supported ciphers : TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV (state=,code=0)
 | 
If I switch to ANOTHER TLSv1.3 ciphersuite option,
| 	-	TLS_CHACHA20_POLY1305_SHA256 | 
| 	+	TLS_AES_256_GCM_SHA384
 | 
re-checking JDBC connection with sqlline,,
| 	java -cp "/usr/local/src/sqlline/target/*:/usr/local/etc/mariadb/connector-j/*" sqlline.SqlLine . | 
|  | 
| 		!connect jdbc:mysql://db.pgnd.lan:3306/mysql?&useSSL=true&enabledSslProtocolSuites=TLSv1.3&enabledSslCipherSuites=TLS_AES_256_GCM_SHA384&verifyServerCertificate=true&disableSslHostnameVerification=false&serverSslCert=/etc/ssl/myCA.pem.pem&jdbcCompliantTruncation=false&autoReconnect=true testuser "testpass"
 | 
now connects,
| 	0: jdbc:mysql://db.pgnd.lan:>
 | 
and uses TLSv1.3
| 	SHOW SESSION STATUS LIKE 'Ssl_version'; | 
|  | 
| 		Variable_name   Value | 
| 		Ssl_version     TLSv1.3
 | 
AND the preferred/spec'd cipher
| 	SHOW SESSION STATUS LIKE 'Ssl_cipher'; | 
|  | 
| 		Variable_name   Value | 
| 		Ssl_cipher      TLS_AES_256_GCM_SHA384
 |