Menu

Como activar certificado SSL en un Servidor MySQL

0 Comments

Creación del certificado SSL

1.  Crear el directorio donde estará ubicado el certificado

$ sudo mkdir /etc/ssl/mysql

2. create the CA private key and certificate.

$ openssl genrsa 2048 > ca-key.pem
$ openssl req -sha1 -new -x509 -nodes -days 3650 -key ca-key.pem > ca-cert.pem

3.  create a private key for the server.

$ openssl req -sha1 -newkey rsa:2048 -days 730 -nodes -keyout server-key.pem > server-req.pem

4. export the server’s private key to RSA-type key

$ openssl rsa -in server-key.pem -out server-key.pem

5. generate a server certificate using the CA certificate.

$ openssl x509 -sha1 -req -in server-req.pem -days 730 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem

Configuración de MySQL

1. Verificar el el SSL esta activo.
$ mysql -u root -p

mysql> SHOW GLOBAL VARIABLES LIKE ‘have_%ssl’;
+—————+———-+
| Variable_name | Value |
+—————+———-+
| have_openssl | DISABLED |
| have_ssl | DISABLED |
+—————+———-+
2 rows in set (0.00 sec)

mysql> quit
Bye

2. Copiamos lo archivos necesarios a la ubicación donde los leerá el MySQL

$ sudo cp ca-cert.pem server-cert.pem server-key.pem /etc/ssl/mysql/

3. Ahora se edita la configuración en /etc/mysql/my.cnf y debajo de [mysqld] se agrega lo siguiente

[mysqld]
ssl-ca=/etc/ssl/mysql/ca-cert.pem
ssl-cert=/etc/ssl/mysql/server-cert.pem
ssl-key=/etc/ssl/mysql/server-key.pem

4. Se reinicia el servidor MySQL

$ sudo systemctl restart mysql.service

5. Volvemos a verificar si esta activo el SSL

$ mysql -u root -p
mysql> SHOW GLOBAL VARIABLES LIKE ‘have_%ssl’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| have_openssl | YES |
| have_ssl | YES |
+—————+——-+
2 rows in set (0.01 sec)

Listo ya tienes el servidor MySQL  con el SSL activado.