Exigir TLS, encontrar conexões sem TLS, renovar certificados sem restart
MySQLSegurançaComando
SELECT @@require_secure_transport, @@tls_version, @@ssl_ca, @@ssl_cert;
SELECT * FROM performance_schema.tls_channel_status
WHERE PROPERTY IN ('Enabled', 'Current_tls_version', 'Current_tls_cert', 'Ssl_server_not_after');
-- Active connections and their TLS versions (empty = no TLS)
SELECT t.PROCESSLIST_USER AS user, t.PROCESSLIST_HOST AS host, t.CONNECTION_TYPE, sv.VARIABLE_VALUE AS tls_version
FROM performance_schema.threads t
LEFT JOIN performance_schema.status_by_thread sv ON sv.THREAD_ID = t.THREAD_ID AND sv.VARIABLE_NAME = 'Ssl_version'
WHERE t.TYPE = 'FOREGROUND' AND t.PROCESSLIST_USER IS NOT NULL;
SET PERSIST require_secure_transport = ON;
-- After copying the new certificate files
ALTER INSTANCE RELOAD TLS;O que faz
Mostra a configuração TLS do servidor, a data de expiração do certificado e se cada conexão usa TLS; proíbe totalmente conexões TCP sem criptografia e renova certificados sem parar o servidor.
Quando usar
Para auditorias de segurança / compliance, antes da expiração do certificado e ao rastrear clientes legados que conectam sem criptografia.
Atenção
require_secure_transport=ON não afeta conexões por Unix socket e shared memory; elas contam como seguras. Encontre os clientes que conectam sem TLS antes de habilitá-lo, senão eles falham com o erro 3159. ALTER INSTANCE RELOAD TLS não afeta conexões existentes, só as novas; se o arquivo do certificado for inválido, ele retorna erro e mantém o certificado antigo. O certificado autoassinado gerado automaticamente não pode ser verificado por clientes com VERIFY_CA / VERIFY_IDENTITY; em produção use um certificado assinado pela sua CA.