Specifying the TLS Version
Use the tls_version
global variable to specify the TLS versions allowed by the server. By default, TLS versions TLSv1
, TLSv1.1
, and TLSv1.2
are supported by SingleStoreDB and can be set only at startup.
SELECT @@tls_version; **** +-----------------------+ | @@tls_version | +-----------------------+ | TLSv1,TLSv1.1,TLSv1.2 | +-----------------------+
Configuring TLSv1.2 to Use a Specific Set of Cipher Suites
Use the ssl_cipher global variable to specify the cipher suites allowed by the server. By default, all cipher suites from the environment's OpenSSL version are enabled for compatibility with client applications. This list can be restricted for SingleStoreDB and can be set only at startup.
Compatibility Issues with Various Clients
Restricting the available cipher suites used by SingleStoreDB may cause compatibility issues with client applications. It is recommended to confirm your client application(s) cipher suite settings prior to configuring a specific set of cipher suites for SingleStoreDB to ensure compatibility.
Subset of ciphers supported in our current version of OpenSSL are:
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-AES256-GCM-SHA384
The CHACHA20 ciphers are not supported by SingleStore’s version of OpenSSL.
Note
SingleStoreDB Cloud does not force TLS 1.2 for the engine and websocket proxy by default. This must be configured using the instructions provided.
The following examples demonstrate how you can update the tls_version
and ssl_cipher
variables on the nodes by running SingleStore Tools commands.
SingleStore Tools
The following command updates the TLS version to TLSv1.2
on all nodes in the cluster.
sdb-admin update-config --key tls_version --value TLSv1.2 --all **** Toolbox is about to run 'memsqlctl update-config --key tls_version --value TLSv1.2' on the following nodes: - On host 127.0.0.1: + 27235D3E385B1056478CE11258959592CE49EE82 + F9F6A7E64946D5D3D1E6F00C175EF00FC240AB97 Would you like to continue? [y/N]: y ✓ Updated configuration on 127.0.0.1 Operation completed successfully
The following commands restart all nodes in the cluster for the new tls_version value to take effect.
sdb-admin stop-node --all
****
✓ Successfully connected to host 127.0.0.1
Toolbox is about to perform the following actions:
· Stop all nodes in the cluster
Would you like to continue? [y/N]: y
✓ Stopped Master node on 127.0.0.1 (1/1)
✓ Successfully stopped Master node on 1 host
✓ Stopped Master node
✓ Stopped Leaf nodes on 127.0.0.1 (1/1)
✓ Successfully stopped Leaf nodes on 1 host
✓ Stopped Leaf node
Operation completed successfully
sdb-admin start-node --all
****
Toolbox is about to perform the following actions:
· Start all nodes in the cluster
Would you like to continue? [y/N]: y
✓ Successfully connected to host 127.0.0.1
✓ Started Leaf nodes on 127.0.0.1 (1/1)
✓ Successfully started Leaf nodes on 1 host
✓ Successfully connected to Leaf node
✓ Started Master node on 127.0.0.1 (1/1)
✓ Successfully started Master node on 1 host
✓ Successfully connected to Master node
Operation completed successfully
singlestore -p **** Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.5.58 MemSQL source distribution (compatible; MySQL Enterprise & MySQL Commercial) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. No entry for terminal type "xterm-256color"; using dumb terminal settings. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
SELECT @@tls_version; **** +---------------+ | @@tls_version | +---------------+ | TLSv1.2 | +---------------+ 1 row in set (0.01 sec)
The following command updates the ssl_cipher
variable:
sdb-admin update-config --key ssl_cipher --value DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384 --all