Una vez creado el certificado (ver
Crear un certificado SSL autofirmado),
hay que configurar Apache para servir el sitio por HTTPS. Tendremos que editar el archivo
/etc/apache2/ports.conf para que quede así:
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
NameVirtualHost *:443
Listen 443
</IfModule>
A continuación, tendremos que crear un archivo nuevo en /etc/apache2/sites-available para el
nuevo sitio web. Por ejemplo podemos llamarlo site-https. El archivo debe contener dos bloques:
uno para el puerto 80 que redirige todo el tráfico a HTTPS:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
</VirtualHost>
Y otro para el puerto 443 con la configuración SSL y las rutas de los archivos que creamos en crear un certificado SSL autofirmado:
<VirtualHost *:443>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateFile /etc/ssl/private/miservidor.crt
SSLCertificateKeyFile /etc/ssl/private/miservidor.key
</IfModule>
</VirtualHost>
Una vez creado el archivo, habilitamos el nuevo sitio, activamos los módulos SSL y rewrite, y forzamos a Apache a leer la nueva configuración:
sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2ensite site-https
sudo /etc/init.d/apache2 force-reload
Y si todo ha ido bien, ya tenemos nuestro sitio disponible por HTTPS.