Skip to main content

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:

  1. DHE-RSA-AES128-GCM-SHA256

  2. DHE-RSA-AES256-GCM-SHA384

  3. ECDHE-ECDSA-AES128-GCM-SHA256

  4. ECDHE-ECDSA-AES256-GCM-SHA384

  5. ECDHE-RSA-AES128-GCM-SHA256

  6. 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