Este es un tutorial para los que conocemos Apache en CentOS/RHEL y encontramos algunas diferencias con apache2 en Ubuntu.
El fichero de configuración de apache2 de Ubuntu es apache2.conf. Podemos ver claramente que este fichero es muy similar a nuestro httpd.conf de CentOS/RHEL, de hecho, tiene una línea que incluye este fichero para que introduzcamos configuraciones personales de usuario:
Include httpd.conf
Algo que difiere con CentOS/RHEL es que los módulos no se cargan por defecto sobre el archivo de configuración, que podría hacerse. En apache2 tenemos que colocar el módulo en el directorio mods-enabled, ya que en apache2.conf:
Include mods-enabled/*.load
Include mods-enabled/*.conf
No hay que colocar aquí los módulos. Este directorio contiene enlaces a otro directorio donde están todos los módulos disponibles: mods-available. Es tan sencillo como crear los enlaces («ln») o usar la utilidad a2enmod.
Para cargar el módulo de SSL: a2enmod ssl
Exactamente lo mismo sucede para gestionar los sites que sirve apache2:
# Include the virtual host configurations:
Include sites-enabled/
Podemos tener los sitios disponibles en sites-available. En sites-enabled encontramos los enlaces a sites-available.
El fichero ports.conf contiene las directivas tipo Listen. Este fichero nos permite saber de un vistazo los puertos abiertos.
En nuestro caso: Listen 443
Ahora vienen las declaraciones Virtual Host para dar acceso a un sitio. Hay que colocar un certificado para el cifrado SSL. Por ejemplo en /etc/apache2/sites-enabled/000-default (realmente es un enlace) colocaremos:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/certificadoPublico.pem
SSLCertificateKeyFile /etc/ssl/private/clavePrivada.pem
[...]
</VirtualHost>
Si queremos usar openssl para crear estos certificados:
openssl req -new -x509 -days 3650 -nodes
-out /etc/ssl/certs/apacheserver.pem
-keyout /etc/ssl/private/apacheserver.pem