Añade SSL en tu Mysql 8 automáticamente en Debian Ubuntu

Enviado por christian el

Configura tu servidor mysql con ssl para securizar las transacciones en entornos Ubuntu  - Debian

 

Este es un post relacionado al grupo de entradas que tengo sobre Ansible y Mysql. Si no estás muy familiarizado con algunos de estos conceptos, vete ahí antes y revisa lo tengo escrito :)

Hoy te voy a explicar cómo habilitar SSL en tu servidor mysql para encriptar las conexiones y transacciones de tu base de datos. Supongo que ya sabrás lo que es SSL y sus beneficios (si no, hay tropecientos millones de documentos en internet que lo explican...). 

Básicamente las conexiones cliente-servidor se cifrar todas mediante los certificados SSL que tú configures. En general es muy sencillo de habilitar porque, principalmente, por defecto Mysql ya crea unos pares de ssl genéricos y cuya activación es muy muy sencilla. Sería:

Habilita SSL en tu servidor Mysql

  1. Modifica el fichero mysqld.conf y habilita el uso de ssl:
    1. #
      # * SSL auth & segure max_connections
      #
      # By deault, mysql generate its own ssl certs into /var/lib/mysql
      ssl_ca = /path/a/tu/ca.pem
      ssl_cert = /path/a/tu/cert.pem
      ssl_key = /path/a/tu/key.pem
    2. Reinicia el servidor msyql para aplicar los cambios
  2. Para probar de una forma muy rudimentaria usa este comando:
    1. # Como root, forza la conexión socket que sea ssl y mysql te notificará que estás con ssl pero no que tiene mucho sentido hacerlo desde la misma máquina desde una conexión socket... (con razón! jaja)
      mysql --ssl-mode=REQUIRED
  3. LISTO!

 

Accede desde fuera a tu mysql con SSL

Como te había comentado antes, mysql ya crea unos certificados ssl propios (si, te puedes crear tu los tuyos o usar unos que ya tengas!!) por lo que podemos usar eses mismos. Lo que tienes que hacer es:

  1. Guardar los .pem en un mismo lugar ya que los usaras para cualquier cliente que desees conectarlo a tu mysql:
    1. Están ubicandos por defecto en /var/lib/mysql
    2. Deberás guardar los ficheros:
      1. ca.pem
      2. client-cert.pem
      3. client-key.pem
  2. Cuando quieras hacer una conexión SSL contra tu servidor mysql, deberás usar estos certificados en la parametrización de la conexión:
    1. Tanto a nivel de conexión desde la terminal con comandos
    2. Tanto a nivel de configuración .my.cnf
    3. Tanto a nivel de aplicación
  3. LISTO!

 

Dinahosting: dominios y alojamiento web
My investor

Regístrate en MyInvestory tendrás un extra de 20€ ! :D

Usa el código U048395 y te llevas un regalo en tu primera inversión :)

Usa el código 22c80f y te llevas un regalo en tu primera inversión :)