Connect to SingleStore Helios using TLS/SSL
On this page
Important
If your SQL client connects using the singlestore_ file with the --ssl-mode=VERIFY_ flag and is unable to establish a connection to SingleStore Helios, download and use the latest singlestore_ file.
-
On the Cloud Portal, for your workspace, select Connect > CLI Client.
-
Under TLS/SSL Certificate, select Download.
Enable SSL/TLS for a Connection
Most client connections are TLS/SSL-enabled by default, even if no parameters are specified.
-
Use a client side flag, such as
--ssl-mode=REQUIREDin the MySQL/SingleStore clients. -
Use a user created with
REQUIRE SSL, which enforces SSL on the server side.
Certificate-Based Authentication
For certificate-based authentication:
-
Configure a CA in the Cloud Portal:
-
On the left navigation pane, select Workspaces.
-
Select the three dots for your workspace, and select Access & Security from the list.
-
On the Security tab, select Upload CA Bundle to upload a CA bundle.
The uploaded CA will be used to verify the client certificates when establishing a secure connection.
-
-
Create a database user with one of the following options in the
CREATE USERstatement to require certificate-based authentication:-
REQUIRE X509: The user can connect only if the client presents a valid TLS client certificate that is not expired and chains to the CA bundle configured on the server.Connections that do not provide a valid certificate are rejected. For example: CREATE USER 's2user'@'%' REQUIRE X509; -
REQUIRE SUBJECT '<subject-dn-string>': In addition to extendingREQUIRE X509,REQUIRE SUBJECTenforces that theSubject DNin the client certificate must exactly match the configured value.This option verifies both trust (via certificate chaining to the CA) and identity (via the Subject DNstring).CREATE USER 's2user'@'%' REQUIRE SUBJECT '/CN=s2user/O=example/C=US';Note: While running
CREATE USERorALTER USER, theSubjectmust be specified in OpenSSL “oneline” format.The fields CN,O,C,ST,L, etc., must be separated by a /.
Users configured with
REQUIRE X509orREQUIRE SUBJECTcan authenticate using their TLS client certificate instead of a database password.This reduces dependency on shared secrets and provides stronger, certificate‑based identity validation. Refer to CREATE USER for related information. -
-
Specify the client certificate and client key while connecting using the
--ssl-certand--ssl-keyclient options, respectively.
The VERIFY_ option is not required to use TLS/SSL.
Refer to SingleStore Helios Endpoints for more information.
Refer to The SingleStore JDBC Driver for details on how to connect using JDBC.
Generate Client Certificates for SingleStore mTLS Connection
Create a client certificate/key pair signed by the CA, and use these files with SingleStore’s --ssl-cert and --ssl-key options for secure mutual TLS (mTLS) authentication.
The CA certificate (ca-cert.) must also be trusted by the SingleStore workspace configuration for client authentication.
Prerequisites
Install OpenSSL.
sudo apt-get install openssl -y
Create a Certificate Authority (CA)
If you already have a CA certificate from your organization or another trusted source, skip this step and use the existing CA to sign the client certificate.
-
Generate a CA private key:
openssl genrsa -out ca-key.pem 4096 -
Generate a CA certificate:
openssl req -x509 -new -nodes -key ca-key.pem -sha256 -days 3650 -out ca-cert.pem \-subj"/C=US/ST=CA/L=SanFrancisco/O=ExampleOrg/OU=IT/CN=Example-CA"
You now have:
-
ca-key.: The private key for your CA.pem -
ca-cert.: The public CA certificate.pem
Keep the CA key (ca-key.) private and secure.
Refer to Certificate-Based Authentication - step 1 for information on how to configure a CA for your workspace.
Create the Client Certificate and Key
-
Generate the client private key and certificate signing request (CSR) as follows:
openssl req -newkey rsa:2048 -nodes -keyout client-key.pem -out client-req.pem \-subj"/C=US/ST=CA/L=SanFrancisco/O=ExampleOrg/OU=Client/CN=client.example.com" -
Create a client certificate signed by the CA.
The following command uses the CA’s certificate and key to sign the client’s certificate. openssl x509 -req -in client-req.pem -CA ca-cert.pem -CAkey ca-key.pem \-CAcreateserial -out client-cert.pem -days 365 -sha256
You now have:
-
client-key.: Client private key.pem -
client-cert.: Client certificate signed by the CA.pem
Verify the Certificates
Run the following command to verify that the client certificate is properly signed by the CA:
openssl verify -CAfile ca-cert.pem client-cert.pem
An output similar to the following that the client certificate is properly signed by the CA:
client-cert.pem: OK
Use the Certificates
When connecting to SingleStore with mTLS, specify the client certificate and key.
mysql -u user \--ssl-ca=/path/to/ca.pem \--tls-version=TLSv1.2 \--ssl-cert=/path/to/client-cert.pem \--ssl-key=/path/to/client-key.pem
Ensure the SingleStore server is configured with server certificate and key before running this command.
Configure the SingleStore Helios Connection
Perform the following tasks to configure the MySQL command-line client to connect to SingleStore Helios with a secure connection.
-
Download the
singlestore_certificate file and save it to your MySQL client machine.bundle. pem -
When connecting to SingleStore Helios, include:
-
The hostname displayed under the Endpoint for your workspace in the Cloud Portal.
-
Port, default is
3306. -
The
--default-auth=mysql_option.native_ password -
The
--ssl-caoption, including the path to thesinglestore_file.bundle. pem This can be done via command-line option, as in --ssl-ca=/path/singlestore_, or by setting the appropriate option in the configuration files for the MySQL command-line client.bundle. pem Include the --ssl-mode=REQUIREDwhen using older versions of the MySQL client, even when the--ssl-caoption is specified. -
The
--ssl-mode=VERIFY_option to verify the certificate.CA
-
-
Test the connection to SingleStore Helios.
The MySQL client will abort with an error if a secure connection cannot be established. While this is most likely due to a misconfiguration, it can also be due to a would-be attacker manipulating the secure connection to SingleStore Helios. mysql -u admin -p -h <endpoint-host> -P <port> \--default-auth=mysql_native_password \--ssl-ca=./singlestore_bundle.pem \--ssl-mode=VERIFY_CA -
Verify that a secure connection has been established to SingleStore Helios via the
statuscommand.mysql -u admin -p -h <endpoint-host> -P 3306 \--default-auth=mysql_native_password \--ssl-ca=./singlestore_bundle.pem -e 'status' \--ssl-mode=VERIFY_CAmysql Ver 14.14 Distrib 5.6.19, for osx10.9 (x86_64) using EditLine wrapper Connection id: 13 Current database: Current user: s2user@yyy.yyy.yyy.yyy SSL: Cipher in use is AES256-SHA Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.5.8 MemSQL source distribution (compatible; MySQL Enterprise & MySQL Commercial) Protocol version: 10 Connection: xxx.xxx.xxx.xxx via TCP/IP Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 TCP port: 3306
Last modified: March 16, 2026