PhpMyAdmin con HTTPS: cifrando el intercambio de datos

Comenzaremos este post luego de haber accedido a la interfaz de phpMyAdmin como mostramos en el anterior. Una vez que nos hemos logueado, nos interesará cifrar el intercambio de datos que hagamos con el servidor. De otra forma podríamos comprometer datos sensibles (como contraseñas) que enviemos. Por eso, en este oportunidad hablaremos sobre cómo integrar phpMyAdmin con HTTPS.

En este post estaremos utilizando conceptos vistos en otros anteriores (ver los links incluidos). Es recomendable repasar los mismos primero para poder seguir adecuadamente el desarrollo del tema que vamos a presentar.

PhpMyAdmin con HTTPS

Para empezar, crearemos un directorio llamado ssl donde guardaremos el certificado y la llave:

mkdir /etc/httpd/ssl

En el comando anterior tendremos que utilizar /etc/apache2/ssl si estamos trabajando en un servidor Debian.

Con el siguiente comando crearemos los archivos apache.key (la llave) y apache.crt (el certificado autofirmado propiamente dicho), como explicamos en una oportunidad anterior.

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

A continuación, deberemos agregar las directivas SSL en el archivo principal de configuración de SSL para Apache. Por lo general, dicho archivo está localizado en /etc/httpd/conf.d/ssl.conf (CentOS) o /etc/apache2/sites-available/default-ssl.conf (Debian):

Listen 443 https
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Luego de reiniciar Apache, abramos nuestro navegador y dirijámonos a https://192.168.0.13/dbadmin. Allí veremos la advertencia sobre el certificado autofirmado que debemos obviar como lo explicamos anteriormente. Podemos ver el resultado en la Fig. 1 a continuación:

Utilizar un certificado autofirmado en phpmyadmin con HTTPS
Figura 1 – Utilizar un certificado autofirmado en phpmyadmin con HTTPS

Recordemos que un certificado autofirmado es suficiente para una red local pequeña o de confianza. Si deseamos luego expandir el acceso a otras redes es importante que consideremos la compra de un certificado firmado por una entidad de confianza. Esto no solamente es más prolijo sino que inspira una cierta confianza a la hora de intercambiar datos cifrados con nuestro servidor.

Finalmente, en el próximo post mostraremos cómo deshabilitar el acceso de root a phpMyAdmin. Este punto será importante para impedir que se intente ingresar a la herramienta mediante ataques de fuerza bruta utilizando dicha cuenta.

¡Nos leemos en breve!