Habilitar HTTPS en Apache

Como configurar Apache y SSL. Para los que siempre olvidan de como hacerlo o para los que nunca lo hicieron.
 
Primero de todo debemos crear los certificados en el servidor.
 
Una vez generados tenemos que cargar el módulo SSL de apache:
  • a2enmod ssl
 
Modificamos el archivo /etc/apache2/ports.conf para que Apache escuche en el puerto 443.
Listen 80
Listen 443
 
Definir un virtual host para SSL para definir los sitios que van a usar HTTPS
  • a2enmod vhost_alias
 
Creamos por ejemplo /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
 
Habilitamos el virtual host SSL que acabamos de crear.
  • a2ensite ssl
 
Reiniciamos apache
  • /etc/init.d/apache2 restart