Configuración de HTTPS en Apache2
Vamos a configurar el acceso con el protocolo HTTPS a prueba.josedomingo.org
.
Suponemos que ya hemos solicitado el certificado a Let’s Encrypt y lo tenemos guardado en los siguientes ficheros:
- El certificado:
/etc/letsencrypt/live/prueba.josedomingo.org/fullchain.pem
- La clave privada:
/etc/letsencrypt/live/prueba.josedomingo.org/privkey.pem
Lo primero que tenemos que hacer es activar el módulo SSL:
# a2enmod ssl
A continuación vamos a crear un virtual host para nuestro FQDN a partir del fichero por defecto para la configuración de HTTPS, en el directorio /etc/apache2/sites-available
, ejecutamos:
# cp default-ssl.conf prueba-ssl.conf
Y lo configuramos de forma adecuada:
...
ServerName prueba.josedomingo.org
DocumentRoot /var/www/prueba
...
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/prueba.josedomingo.org/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/prueba.josedomingo.org/privkey.pem
...
Con la directiva SSLEngine
activamos el uso de HTTPS, SSLCertificateFile
nos permite indicar el certificado emitido por la CA y con SSLCertificateKeyFile
indicamos nuestra clave privada.
Nota: Toda la configuración especifica que tenía el virtualhost HTTP lo tendremos que poner el virtualhost HTTPS.
Finalmente activamos el sitio:
# a2ensite prueba-ssl.conf
Redirigiendo el trafico HTTP a HTTPS
Podemos hacer una redirección para que cuando accedamos con HTTP se solicite el recurso utilizando HTTPS. Para ello en el fichero de configuración del virtual host /etc/apache2/sites-available/prueba.conf
podemos incluir un redirect
:
...
redirect premanent / https://prueba.josedomingo.org
...
Si tenemos activo el módulo rewrite
también podemos hacer la redirección con la siguiente configuración:
...
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
...