Me ha surgido la curiosidad de usar SSL para la conexion a MariaDB de un determinado usuario. Teniendo en cuenta que ya dispongo de un servidor web con sus certificados voy a reutilizar esos mismos que he creado con Let’s Encrypt.
Bibliografía:
https://www.cyberciti.biz/faq/how-to-setup-mariadb-ssl-and-secure-connections-from-clients/
En caso de que no dispongas de servidor web puedes igualmente usar Let’s Encrypt de la siguiente forma
apt install certbot
certbot certonly --standalone -d tudominio.com
Cuando ya tengas los certificados crea una copia para MariaDB
mkdir /var/lib/mysql/pki
cp /etc/letsencrypt/live/tudominio.com/* /var/lib/mysql/pki/
openssl rsa -in /var/lib/mysql/pki/privkey.pem -out /var/lib/mysql/pki/priv.key
chown -R mysql. /var/lib/mysql/pki
Edita el archivo de configuracion de MariaDB
nano /etc/mysql/my.cnf
Y añade estas tres llineas en la seccion [mysqld]
ssl-ca=/var/lib/mysql/pki/chain.pem
ssl-cert=/var/lib/mysql/pki/cert.pem
ssl-key=/var/lib/mysql/pki/priv.key
Reinicia el servidor de bases de datos
systemctl restart mariadb
Hecho esto tu servidor ya tiene la capacidad de usar SSL, como lo que necesito es que un determinado usuario tenga que conectarse obligatoriamente con SSL voy a forzar que así sea.
mysql -u root -p
GRANT USAGE ON nombredebasededatos.* TO 'nombreusuario'@'%' REQUIRE SSL;
FLUSH PRIVILEGES;