As of this patch, we have the following file usage:
- KV nodes on host cluster:
- ui.crt (optional):
- used as server cert for HTTP
- ui-ca.crt (optional):
- used in unit tests to verify the server's identity for HTTP conns
- node.crt:
- used as client cert for node-to-node comms
- used as server cert for node-to-node comms
- used as server cert for SQL clients
- used as server cert for incoming conns from SQL tenant servers
- used as server cert for HTTP, if ui.crt doesn't exist
- tenant-client-ca.crt (optional):
- used to verify certificates from SQL tenant servers connecting as clients
- client-ca.crt (optional);
- used to verify client certs for SQL clients
- used to verify client certs for SQL tenant servers, if tenant-client-ca.crt doesn't exist
- ca.crt:
- used to verify other node client certs for node-to-node comms
- used in unit tests to verify the server's identity for SQL and RPC conns
- used to verify client certs for SQL clients, if client-ca.crt doesn't exist
- used to verify client certs for SQL tenant servers, if neither tenant-client.ca.crt nor client-ca.crt exist
- SQL servers:
- ui.crt (optional):
- used as server cert for HTTP
- ui-ca.crt (optional):
- used in unit tests to verify the server's identity for HTTP conns
- client-tenant.NN.crt:
- used as client cert for node-to-node comms (SQL server to SQL server)
- used as server cert for node-to-node comms (SQL server to SQL server)
- used as client cert for conns to KV nodes
- used as server cert for SQL clients
- used as server cert for HTTP, if ui.crt doesn't exist
- tenant-client-ca.crt (optional):
- used to verify certs from other SQL tenant servers
- client-ca.crt (optional);
- used to verify client certs for SQL clients
- used to verify client certs for SQL tenant servers, if tenant-client-ca.crt doesn't exist
- ca.crt:
- used to verify other SQL server certs for node-to-node comms, if tenant-client-ca.crt doens't exist
- used to verify client certs for SQL clients, if client-ca.crt doesn't exist
- used to verify client certs for SQL tenant servers, if neither tenant-client.ca.crt nor client-ca.crt exist
- used in unit tests to verify the server's identity for SQL and RPC conns
Release note (security update): Multitenant SQL servers now reuse
the tenant client certificate (`client-tenant.NN.crt`) for SQL-to-SQL
communication. Existing deployments must regenerate the certificates
with dual purpose (client and server authentication).