Para los que siempre olvidan cómo hacerlo o para los que nunca lo hicieron en este post explico cómo proteger un sitio web utilizando Apache y SSL.

Generación de los certificados

Para poder habilitar SSL en Apache es indispensable contar con los certificados que validarán la autenticidad del servidor. Entonces, el primer paso será generar los certificados (escoger el método de la CA propia).

Habilitar SSL en Apache

Cargar el módulo de ssl.

a2enmod ssl

Hacer que Apache escuche en el puerto 443.

/etc/apache2/ports.conf

Listen 80
Listen 443

Definir un virtual host para SSL

Si bien no es necesario, este paso es recomendado, porque podremos separar los sitios con HTTP de los que usan HTTPS de forma más ordenada.

Habilitar los virtual hosts en Apache.

a2enmod vhost_alias

Definir un virtual host en sites-availables. Aquí supongo que al momento sólo existe un archivo que se llama default. A dicho archivo, definirle:

NameVirtualHost *:80

De esta manera, el default sólo es para los sitios con HTTP. Ahora crear el archivo /etc/apache2/sites-availables/ssl con el siguiente contenido:

NameVirtualHost *:443
SSLEngine on
SSLCertificateFile /etc/ssl/ssl/server.crt
SSLCertificateKeyFile /etc/ssl/server.key
DocumentRoot /var/www
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log

Habilitar el virtual host.

a2ensite ssl

Finalmente, recargar Apache.

/etc/init.d/apache2 restart