🔐 MySQL-based SSL/TLS Encrypted Connection (MySQL/MariaDB/Percona)
Este recurso permite ativar conexões criptografadas com SSL/TLS entre sua aplicação e os bancos de dados MySQL, MariaDB ou Percona. Ao habilitar esse recurso, todos os dados trafegam de forma segura, protegidos contra interceptação.
✅ Recomendado para aplicações com informações sensíveis, sistemas em rede pública ou que exigem conformidade com padrões de segurança como LGPD, PCI ou HIPAA.
⚙️ Como habilitar o Add-on na SaveinCloud
- Acesse o painel do seu ambiente e clique na opção Add-ons na instância do seu banco de dados MySQL.
- Localize o add-on MySQL-bases SSL/TLS Encrypted Connection e clique em Instalar.
Na tela de instalação do add-on, você deverá preencher:
- Environment: Ambiente desejado
- Node Group(s): Grupo de nós onde o complemento será instalado
Em um minuto, seu banco de dados será reconfigurado para funcionar por meio de uma conexão criptografada.
📁 Localização dos certificados
Os certificados são gerados automaticamente com o utilitário /usr/local/sbin/selfcertgen
. Eles são autoassinados e emitidos com base no hostname de cada nó.
📂 Diretório dos certificados:
/var/lib/jelastic/keys/SSL-TLS
Este diretório possui duas subpastas:
- client – contém os certificados de cliente para download e uso na autenticação
- server – contém os certificados utilizados pelo banco para habilitar a criptografia TLS
🛠️ Configurações complementares
Configurações adicionais são aplicadas automaticamente no arquivo:
/etc/mysql/conf.d/ssl-config.cnf
Conteúdo padrão:
[mysqld]
ssl_ca=/var/lib/jelastic/keys/SSL-TLS/server/root.crt
ssl_cert=/var/lib/jelastic/keys/SSL-TLS/server/server.crt
ssl_key=/var/lib/jelastic/keys/SSL-TLS/server/server.key
#ssl-cipher=ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA
#require_secure_transport=ON
💡 A opção
require_secure_transport=ON
(comentada por padrão) força o uso exclusivo de conexões SSL.
🔄 Gerenciamento do add-on
Após a instalação, você pode:
-
📥 Reemitir certificados clicando em Re-issue certificates
Útil em situações como perda acidental dos arquivos
.crt/.key
, ou caso você suspeite que os certificados foram comprometidos. -
❌ Desinstalar o complemento usando o menu no canto superior direito
Remove também os certificados SSL gerados e as configurações aplicadas.
🧪 Testando conexão via SSL (criptografia em trânsito)
A “criptografia em trânsito” (criptografia do lado do servidor) funciona desde a instalação do complemento. Você pode verificar conectando-se usando as credenciais do banco de dados que chegam no e-mail. Para a conexão remota, você pode adicionar o Endpoints ou IP público.
Use o seguinte comando para testar a conexão com criptografia (lado do servidor):
mysql --ssl-mode=required -h {host} -P {port} -u {user} -p
Onde:
{host}
– ponto de entrada do banco de dados (endpoint ou IP público).{port}
– porta utilizada para conexão (geralmente3306
).{user}
– nome de usuário do banco de dados utilizado para autenticação.
Verifique no comando status
se há uma linha SSL na saída:
SSL: Cipher in use is TLS_AES_256_GCM_SHA384
🧠 Para conexões externas, utilize o IP público ou Endpoint do seu banco.
🔒 Tornando o uso de certificados obrigatório
Enquanto estiver conectado ao servidor, você pode configurar o uso de certificados de cliente para autenticação criptografia do lado do servidor e do cliente. Execute o comando abaixo para tornar a autenticação SSL obrigatória para o usuário especificado.
ALTER USER 'usuario'@'%' REQUIRE X509;
ALTER USER 'usuario'@'localhost' REQUIRE X509;
Nota: O Common Name (CN) não é verificado por padrão. Qualquer certificado assinado pela CA será aceito.
Se desejar garantir que apenas certificados emitidos para um determinado usuário sejam aceitos, utilize:
ALTER USER 'usuario'@'%' REQUIRE SUBJECT 'CN=usuario';
ALTER USER 'usuario'@'localhost' REQUIRE SUBJECT 'CN=usuario';
💡 Caso deseje utilizar apenas certificados para login, você pode remover a exigência de senha usando o comando ALTER USER.
📦 Conectando com certificados SSL
Agora forneça ao servidor client (computador/conteiner/VM) os arquivos de certificado SSL apropriados, que podem ser baixados do diretório /var/lib/jelastic/SSL-TLS/client do nó destino desejado. Uma vez feito isso, você pode se conectar utilizando o seguinte comando:
mysql –h {host} -P {port} -u {user} -p --ssl-mode=VERIFY_CA --ssl-ca={path/to/root.crt} --ssl-cert={path/to/client.crt} –ssl-key={path/to/client.key}
🔒 Recomendado usar
VERIFY_CA
para validar a autoridade certificadora do servidor.
Para evitar ter que passar os caminhos dos certificados em cada conexão, adicione-os ao seu arquivo ~/.my.cnf
:
[client]
ssl-ca = /var/lib/jelastic/keys/root.crt
ssl-cert = /var/lib/jelastic/keys/client.crt
ssl-key = /var/lib/jelastic/keys/client.key
💡 Assim, ao executar mysql
, os certificados serão aplicados automaticamente.
📚 Documentação e Recursos
- Documentação Oficial do MySQL
- Conexões SSL com MySQL
- Documentação da Virtuozzo sobre SSL Add-on
- OpenSSL (para geração de certificados)
🧠 Suporte
Caso tenha dúvidas, encontre dificuldades na configuração ou precise de ajuda em situações específicas, entre em contato com o suporte técnico da SaveinCloud através dos canais disponíveis no painel da plataforma.