Configurar autenticación en Apache con authn_dbd y MySQL

libapache2-mod-auth-mysql está descontinuado en Ubuntu 18.04, por lo que para configurar la autenticación Basic en Apache es necesario utilizar authn_dbd. En este caso se usa autenticación Basic porque Digest no funciona :( por lo que es necesario utilizar https (cosa que es recomendable siempre).

Primero hay que activar los siguientes módulos de apache:

Hay que crear el fichero /etc/apache2/mysql_auth_virtualhost.inc en el que tendremos la configuración a añadir a todos los virtualhosts en los que utilizaremos alguna autenticación. Esta configuración indica el servidor MySQL y las credenciales de la conexión a la tabla MySQL de usuarios y grupos:

Hay que cear el fichero /etc/apache2/mysql_auth_directory.inc, donde tendremos la configuración a incluir en cada directiva <Directory> para activar la autenticación para dicho directorio:

Configurar cada VirtualHost con lo siguiente:

Configuración de la Base de Datos

Estas son las tablas que contienen los usuarios y grupos a los que pertenecen:

En la tabla mysql_auth hay una fila por usuario y en la tabla mysql_groups hay una fila por cada grupo al que pertenece un usuario (en groups realmente se indica único grupo, nombre mal elegido en su día).

Las contraseñas las creo del tipo bcrypt (que es la más segura por el momento:

y en el campo mysql_auth.passwd copio el hash creado con bcrypt: $2y$05$Uy3ert...

Configurar Apache2 y Mod Auth Mysql con contraseñas SHA1sum

Obsoleto. Ver la actualización Configurar Autenticación en Apache con authn_dbd y MySQL

Ahora las contraseñas de usuarios del servidor Apache2 se almacenan encriptadas mediante SHA1. La versión del módulo que viene con la distribución es la 4.3.9-11 y es complicado configurarla (yo no conseguí que aceptase SHA1).
La solución ha sido instalar el paquete de Ubuntu Lucid: http://ns2.canonical.com/es/lucid/web/libapache2-mod-auth-mysql que es la versión 4.3.9-12

Después simplemente se trata de activar el módulo (con sudo en caso necesario,…):
$ a2enmod auth_mysql
y leer detenidamente las instrucciones que aparecen en:
/usr/share/doc/libapache2-mod-auth-mysql/USAGE.gz
/usr/share/doc/libapache2-mod-auth-mysql/DIRECTIVES.gz

Las contraseñas las genero a mano con

y aparece el hash.