Apache sobre SSL

Publicado el 2 diciembre, 2017 por glaucuss

Etiquetas: , , ,

Introducción

Cuando hablamos de seguridad, en lo que a servidores de páginas web respecta, hablamos del protocolo https. Https es importante ya que nos proporciona un cifrado punto a punto (desde el servidor hasta el cliente) de las comunicaciones entre ambos, de forma que si alguien nos ataca e intercepta un paquete de red no pueda descifrarlo. Esto es útil cuando en nuestro sitio web se manejan contraseñas y credenciales de acceso susceptibles a ataques. Por ello es una medida de seguridad muy a tener en cuenta y hoy vamos a explicar como se instala en nuestros servidores, en nuestro caso usaremos Ubuntu Server.

Creación de un certificado SSL autofirmado

Las empresas de importantes y las grandes entidades suelen usar certificados SSL expedidos por la FNMT (Fábrica Nacional de Moneda y Timbre), que es una entidad cuyos certificados están reconocidos por los navegadores web y son oficiales. Para nuestro caso lo que pretendemos es simplemente cifrar el tráfico http por lo cual no nos hace falta solicitar dicho certificado oficial, basta con generar el nuestro de la siguiente manera

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/certificado.key -out /etc/ssl/certs/certificado.crt

Habilitar cambios en el servicio Apache2

Para que nuestro servidor Apache pueda interpretar dicho certificado y usarlo debemos habilitar varios de sus módulos

sudo a2enmod ssl && sudo a2enmod headers

Habilitar el uso de ssl en nuestro sitio web

Ahora vamos a habilitar en nuestro archivo de virtualhost por defecto el uso de SSL

sudo nano /etc/apache2/sites-available/default-ssl.conf

Y debería quedar de la siguiente manera:

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin tudirecciondecorreo@dominio.tld
ServerName dominio_o_IP
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/certificado.crt
SSLCertificateKeyFile /etc/ssl/private/certificado.key
<FilesMatch “\.(cgi|shtml|phtml|php)$”>
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch “MSIE [2-6]” \
nokeepalive ssl-unclean- shutdown \
downgrade-1.0 force-response-
</VirtualHost>
</IfModule>

Redirección permanente a virtualhost ssl

Ahora debemos modificar nuestro archivo de virtualhost por defecto para que requiera siempre el uso de SSL

sudo nano /etc/apache2/sites-available/000-default.conf

Y debemos añadir la línea

. . .
Redirect permanent “/” “https://dominio_o_IP”
. . .

Ya solo nos quedaría reiniciar el servicio de Apache2 para aplicar todos los cambios

sudo service apache2 restart

© Glaucus Soft · Todos los derechos reservados

Esta web utiliza cookies para ofrecerle una mejor experiencia de usuario y mayor navegabilidad.