Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org/
Licencia de este documento: Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2024 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.
Los procedimientos de este documento asumen que el lector ha leído y estudiado el documento titulado Configuración básica de MariaDB.
En los siguiente procedimientos se habilitará el soporte de cifrado unidireccional de MariaDB™, es decir sin validar certificados de cliente, lo cual haría demasiado complejo los procedimientos.
Para realizar una configuración que utilice cifrado bidireccional ―validando certificados de clientes― se tiene que generar un certificado y firma digital de Autoridad Certificadora (CA) y utilizar éstos para crear y firmar certificados de servidor y de todos los clientes que se desee conectar, con la ventaja de sólo permitir conexiones realizadas desde clientes con certificados firmados por el mismo CA del certificado del servidor.
Por lo anterior, sólo describiré el procedimiento para habilitar el soporte para TLS unidireccional.
Se requerirá disponer de un certificado y firma digital firmados por una Autoridad certificadora (CA).
Si ya dispone de un juego de certificados, sólo es necesario copiarlos a una carpeta dentro de /etc/my.cnf.d
. Ejemplo:
mkdir -p /etc/my.cnf.d/certs
cp /etc/pki/tls/comodo/* /etc/my.cnf.d/certs
Cabe señalar que la ruta de los certificados y firma digital deben ser propiedad del usuario mysql
.
chown -R mysql:mysql /etc/my.cnf.d/certs
Edite el archivo /etc/my.cnf.d/mariadb-server.cnf
:
vim /etc/my.cnf.d/mariadb-server.cnf
Añada las siguientes líneas en la sección [mariadb]
:
ssl_cert = /etc/my.cnf.d/certs/servidor.crt
ssl_key = /etc/my.cnf.d/certs/firma.key
ssl_ca = /etc/my.cnf.d/certs/ca.pem
Ejemplo:
[mariadb]
ssl_cert = /etc/my.cnf.d/certs/cert.pem
ssl_key = /etc/my.cnf.d/certs/privkey.pem
ssl_ca = /etc/my.cnf.d/certs/chain.pem
Reinicie el servicio mariadb
:
systemctl restart mariadb
Acceda al intérprete de MariaDB™:
mysql -uroot -p
Ejecute lo siguiente desde el intérprete de MariaDB™:
SHOW VARIABLES LIKE 'have_ssl';
La salida debe ser similar a la siguiente:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_ssl | YES |
+---------------+-------+
1 row in set (0.001 sec)
Salga del intérprete de MariaDB™:
exit;
Intente acceder nuevamente al intérprete de MariaDB™ pero usando la opción --ssl
para utilizar explícitamente TLS en la conexión:
mysql -uroot -p --ssl -h 127.0.0.1
Ejecute lo siguiente desde el intérprete de MariaDB™:
status
La salida deberá ser similar a la siguiente:
--------------
mysql Ver 15.1 Distrib 10.5.22-MariaDB, for Linux (x86_64) using EditLine wrapper
Connection id: 3
Current database:
Current user: root@localhost
SSL: Cipher in use is TLS_AES_256_GCM_SHA384
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.5.22-MariaDB MariaDB Server
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 15 min 51 sec
Threads: 8 Questions: 305 Slow queries: 0 Opens: 22 Flush tables: 1 Open tables: 15 Queries per second avg: 0.320
--------------
Salga del intérprete de MariaDB™:
exit;