Skip to content

Commit 9da2dc4

Browse files
claudespicelukekim
authored andcommitted
fix: Correct MySQL required SSL mode — it does verify certificates
The mysql_sslmode: required mode uses SslOpts::default() which sets accept_invalid_certs=false and skip_domain_validation=false, meaning it verifies the server certificate against system root CAs and validates the domain name. The docs incorrectly stated it does not verify.
1 parent 87eec09 commit 9da2dc4

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

website/docs/components/data-connectors/mysql/deployment.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ TLS is controlled via `mysql_sslmode`:
3636
| ------------- | ---------------------------------------------------------------- |
3737
| `disabled` | No TLS. |
3838
| `preferred` | Try TLS, fall back to plaintext. Not recommended for production. |
39-
| `required` | Require TLS; do **not** verify the server certificate. |
39+
| `required` | Require TLS and verify the server certificate against system root CAs. |
4040

41-
For production, use `required` with `mysql_sslrootcert` pointing to the CA bundle. The default is `required`, which encrypts the connection but does not validate the server's identity.
41+
For production, use `required` (the default). To verify against a specific CA rather than the system trust store, also set `mysql_sslrootcert` to the CA bundle path.
4242

4343
## Resilience Controls
4444

@@ -96,7 +96,7 @@ MySQL operations participate in Spice [task history](../../../reference/task_his
9696
## Known Limitations
9797

9898
- Only TCP connections are supported. Unix socket connections are not exposed through Spice configuration.
99-
- TLS with certificate verification (`verify_ca`, `verify_identity`) is not supported; only `disabled`, `preferred`, and `required` modes are available.
99+
- Only `disabled`, `preferred`, and `required` SSL modes are exposed. The `required` mode verifies the server certificate and domain name (equivalent to `verify_identity`). There is no mode that encrypts without verifying.
100100
- Large text/blob columns are fetched in their entirety per row; consider selecting only the columns you need when federating.
101101
- `mysql_sslmode: preferred` silently downgrades to plaintext on TLS negotiation failure and is not recommended for production.
102102

0 commit comments

Comments
 (0)