Connect to SingleStore using TLS/SSL
On this page
Most client connections are TLS/SSL by default, even if no parameters are specified.
The options available that ensure a TLS/SSL connection are:
-
Using the client side flag, such as
--ssl-mode=REQUIREDin MySQL/Singlestore clients. -
Using a user created with
REQUIRE SSL(enforces on the server side).
You can provide a client certificate and client key while connecting using --ssl-cert and --ssl-key options.ssl-ca-for-client-cert.memsql..
The VERIFY_ option is not required to use TLS/SSL.
Refer to SSL Secure Connections for more information.
Refer to The SingleStore JDBC Driver for details on how to connect using JDBC.
Generating Client Certificates for SingleStore mTLS Connections
The following instructions can be used to create a client certificate/key pair signed by the CA.--ssl-cert and --ssl-key options for secure mutual TLS (mTLS) authentication.
If you already have a CA certificate from your organization or another trusted source, you can skip the "Create a Certificate Authority" section below and use your existing CA to sign the client certificate.
The CA certificate (ca-cert.) must also be trusted by the SingleStore cluster configuration for client authentication.
Prerequisites
OpenSSL must be installed (for example for Ubuntu/Debian).
sudo apt-get install openssl -yCreate a Certificate Authority (CA)
-
Generate a CA private key as follows:
openssl genrsa -out ca-key.pem 4096 -
Generate a CA certificate as follows:
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.
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
You can confirm that the client certificate is properly signed by the CA by using the below command:
openssl verify -CAfile ca-cert.pem client-cert.pemThe resulting output should be:
client-cert.pem: OKUsing 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.pemLast modified: October 30, 2025