Después de crear un certificado SSL autofirmado, configuré mi servidor MySQL remoto para usarlos (y SSL está habilitado)
Me conecto a mi servidor remoto e intento conectarme a su propio mysqld usando SSL (el servidor MySQL es 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, recuerdo haber leído que hay algún problema con la conexión al mismo servidor a través de SSL. Así que descargo las claves del cliente en mi casilla local y pruebo desde allí ...
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
No está claro a qué se refiere este error de "error de conexión SSL", pero si omito el -ssl-ca
, entonces puedo conectarme 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)
Sin embargo, creo que esto solo está encriptando la conexión y no verificando realmente la validez del certificado (lo que significa que sería potencialmente vulnerable a un ataque de hombre en el medio)
Los certificados SSL son válidos (aunque autofirmados) y no tienen una frase de contraseña. Entonces mi pregunta es, ¿qué estoy haciendo mal? ¿Cómo puedo conectarme a través de SSL, usando un certificado autofirmado?
La versión del servidor MySQL es 5.5.25 y el servidor y los clientes son CentOS 5.
Gracias por cualquier consejo
Editar : tenga en cuenta que en todos los casos, el comando se emite desde el mismo directorio donde residen las claves SSL (por lo tanto, no hay una ruta absoluta)
Editar (en respuesta a mgorven):
ca.cert
es el certificado de la Autoridad de certificación, que se supone que debe decirle a mysql que mi autoridad de certificación es de confianza.
La configuración de my.cnf
es
[mysqld]
ssl-ca=/etc/ssl/mysql/ca.cert
ssl-cert=/etc/ssl/mysql/server.cert
ssl-key=/etc/ssl/mysql/server.key
También intenté agregar ssl-cipher=DHE-RSA-AES256-SHA
pero lo eliminé porque no ayudó.
ca.cert
? ¿Es el certificado autofirmado del servidor? ¿Está utilizando certificados de cliente para la autenticación? Proporcione la configuración relacionada con SSL en el servidor.