es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué el cliente MySQL puede conectarse a MySQL 5.6 habilitado para SSL a través de una IP privada sin usar la operación –ssl-ca, pero no puede hacerlo a través de una IP pública?

En mi centro de datos IDC, desplegué un mysql5.6 habilitado para SSL con CA auto-firmado y certificado de servidor. Y mis usuarios tienen la operación ‘require ssl’.

=========================================================================================

MySQL root@[(none)]> select user, host, ssl_type from mysql.user where user =’ssl_test2′;

| user | host | ssl_type |

| ssl_test2 | % | ANY |

MySQL root@[(none)]> mostrar variables como ‘%ssl%’;

| Nombre de variable | Valor |

| have_openssl | YES |

| have_ssl | YES |

| ssl_ca | /tmp/ca.pem |

| ssl_cert | /tmp/server-cert.pem |

| ssl_key | /tmp/server-key.pem |

=========================================================================================

Puedo conectarme a este MySQL desde otra máquina IDC, comando: “mysql -u ssl_test2 -p -h [dirección IP privada] -P 3306”. Se ocultará alguna información confidencial.

=========================================================================================

[mysql@GP-APS-SET02 ~]$ mysql xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Introduzca la contraseña:
Bienvenido al monitor de MySQL. Los comandos terminan con ; o \g.
Su conexión de MySQL id es 221
Versión del servidor: 5.6.45-log MySQL Community Server (GPL)

Derechos de autor (c) 2000, 2017, Oracle y / o sus afiliados. Todos los derechos reservados.

Oracle es una marca registrada de Oracle Corporation y / o sus afiliadas. Otros nombres pueden ser marcas comerciales de sus respectivos propietarios.

Escriba ‘help;’ o ‘\h’ para obtener ayuda. Escriba ‘\c’ para borrar la instrucción actual.

MySQL risk-yun@[(none)]> \s

mysql Ver 14.14 Distrib 5.7.19, para linux-glibc2.12 (x86_64) usando EditLine wrapper

Id de conexión: 221
Base de datos actual:
Usuario actual: xxxxxxxxxxxxxxxxxxxx

SSL: el cifrado utilizado es DHE-RSA-AES256-SHA

Pero tengo un servidor de aplicaciones en la nube, así que necesito conectarme al MySQL a través de una IP pública. El comando es como “mysql -u ssl_test2 -p -h [IP pública] -P [puerto]”. Obtendré el error “ERROR 1045 (28000): Acceso denegado para el usuario xxxxxx (usando contraseña: SÍ)”.

Si proporciono el certificado CA en la instancia de ECS en la nube, el comando como “mysql –ssl-ca=ca.pem”, puedo conectarme al MySQL correctamente y la encriptación SSL también tiene éxito.

Entonces, ¿cómo puedo conectarme al MySQL sin la operación SSL a través de IP pública? ¿Y por qué?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para conectarse a MySQL sin SSL a través de una dirección IP pública, puede modificar la configuración del usuario para no requerir SSL. Puede hacer esto ejecutando el siguiente comando en la consola de MySQL como usuario con los suficientes privilegios:

    UPDATE mysql.user SET ssl_type = '' WHERE user = 'ssl_test2';
    FLUSH PRIVILEGES;
    

    Esto modificará la configuración del usuario para permitir conexiones sin SSL. Sin embargo, es importante tener en cuenta que esto puede no ser seguro y se recomienda utilizar SSL siempre que sea posible para cifrar los datos sensibles en tránsito.

    La razón por la cual no se puede conectar a MySQL a través de una dirección IP pública sin SSL es que se requiere SSL para el usuario ‘ssl_test2’, como se indica en la operación ‘require ssl’. Sin SSL, la conexión será rechazada por el servidor como insegura. Al proporcionar el certificado ca en la ECS en la nube, se cumple el requisito de SSL y se puede conectar correctamente.

    En general, se recomienda encarecidamente utilizar SSL siempre que se conecte a MySQL, especialmente en redes públicas, para garantizar la seguridad de sus datos.

Comments are closed.