Após criar um certificado SSL autoassinado, configurei meu servidor MySQL remoto para usá-los (e o SSL está ativado)
Eu ssh no meu servidor remoto e tente conectar-se ao seu próprio mysqld usando SSL (o servidor MySQL é 5.5.25).
mysql -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
Ok, lembro de ter lido algum problema com a conexão ao mesmo servidor via SSL. Então, baixo as chaves do cliente para a minha caixa local e testei a partir daí ...
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error
Não está claro a que esse erro de "erro de conexão SSL" se refere, mas se eu omitir o -ssl-ca
, posso conectar-me usando SSL.
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.5.25 MySQL Community Server (GPL)
No entanto, acredito que isso apenas criptografa a conexão e não verifica a validade do certificado (o que significa que eu estaria potencialmente vulnerável a ataques intermediários)
Os certificados SSL são válidos (embora autoassinados) e não possuem uma senha. Então, minha pergunta é: o que estou fazendo de errado? Como conectar-me via SSL, usando um certificado autoassinado?
A versão do MySQL Server é 5.5.25 e o servidor e os clientes são o CentOS 5.
Obrigado por qualquer conselho
Editar : observe que, em todos os casos, o comando está sendo emitido do mesmo diretório em que as chaves ssl residem (portanto, nenhum caminho absoluto)
Editar (em resposta ao mgorven):
ca.cert
é o certificado da Autoridade de Certificação, que deve informar ao mysql que minha autoridade de certificação é confiável.
A configuração de my.cnf
é
[mysqld]
ssl-ca=/etc/ssl/mysql/ca.cert
ssl-cert=/etc/ssl/mysql/server.cert
ssl-key=/etc/ssl/mysql/server.key
Também tentei adicionar, ssl-cipher=DHE-RSA-AES256-SHA
mas o removi, pois não ajudou.
ca.cert
? É o certificado autoassinado do servidor? Você está usando certificados de cliente para autenticação? Forneça a configuração relacionada ao SSL no servidor.