Módulo SSL en Apache 2.4

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introdución

Podemos usar o 'protocolo HTTPS (HyperText Transfer Protocol Secure) para aumentar a seguridade; basesase nunha capa de software protexida, SSL (Secure Socket Layer) ou TLS (Transport Layer Secure, sucesor de SSL), para a comunicación entre o cliente e o servidor Apache.

O protocolo de seguridade toma en conta a autenticación dos participantes a través dos certificados, o cifrado e o control da integridade dos datos intercambiados.

Emprega o well-known port 443, a diferencia de http que emprega o 80.

Habilitar módulo SSL

sudo a2enmod ssl
sudo a2enmod headers


O módulo que xestiona o protocolo SSL é mod_ssl. Ten que estar configurado para ser cargado no ficheiro de configuración do servidor HTTP Apache.

NOTA. Comprobar que o módulo está instalado (3 posibilidades):
ls /lib/apache2/modules/*ssl*  
/lib/apache2/modules/mod_ssl.so  

find /etc/apache2 -name '*ssl*'  
/etc/apache2/mods-available/ssl.load 
/etc/apache2/mods-available/ssl.conf 
/etc/apache2/sites-available/default-ssl.conf 
cat /etc/apache2/mods-available/ssl.load  
# Depends: setenvif mime socache_shmcb  
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so

Generar certificado autofirmado

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

Configurar virtual host para acceso seguro

                       /etc/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin your_email@example.com
                ServerName server_domain_or_IP

                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on

                SSLCertificateFile      /etc/ssl/certs/apache-selfsigned.crt
                SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>

        </VirtualHost>
</IfModule>

Desactivar SSLv2 e SSLv3 (opcional)

Podemos desactivar as versións 2 e 3 de SSL por estar obsoletas:

SSLProtocol all -SSLv2 -SSLv3

Reiniciar servicio

sudo systemctl restart apache2

Uso

Acceder por https: https://server_domain_or_IP


Referencias