Este tutorial le guía a través de la instalación y configuración de un servidor Apache asegurado con un certificado SSL. Hacia el final del tutorial, tendrá un servidor accesible a través de HTTPS
$ sudo apt-get update
$ sudo apt-get upgrade openssl
Paso 1: Instalar Apache
$ sudo apt-get install apache2
Paso 2: Activar el modulo SSL
$ sudo a2enmod ssl
La página web por defecto de Apache viene con una plantilla útil para la activación de SSL, por lo que se activará la página web por defecto ahora.
$ sudo a2ensite default-ssl
$ sudo service apache2 reload
Paso 3: Crear un Self-Signed SSL Certificate
$ sudo mkdir /etc/apache2/ssl
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Establecer los permisos de archivo para proteger su clave privada y el certificado.
$ sudo chmod 600 /etc/apache2/ssl/*
Paso 4: Configurar Apache para usar SSL
$ sudo nano /etc/apache2/sites-enabled/default-ssl.conf
Paso 4: Configurar Apache para usar SSL
$ sudo nano /etc/apache2/sites-enabled/default-ssl.conf
Una vez que se han realizado estos cambios, compruebe que el archivo de configuración de host virtual coincide con el siguiente.
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin wilzon@wilzonmb.com
ServerName wilzonmb.com:443
DocumentRoot /var/www/html
. . .
SSLEngine on
. . .
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
Guarde y salga del archivo.
$ sudo service apache2 reload
Paso 5: Testear Apache con SSL
En esta sección, vamos a probar su conexión SSL desde la línea de comandos.
Abrir una conexión HTTPS a través del puerto 443.
$ openssl s_client -connect your_server_ip:443
Desplazarse hasta la mitad de la producción (después de la llave), y usted debe encontrar los siguientes:
—-
SSL handshake has read 3999 bytes and written 444 bytes
—-
. . .
SSL-Session:
. . .
Por supuesto, los números son variables, pero este es el éxito. ¡Felicitaciones!
Presione CTRL + C para salir.
También puede visitar su sitio web en un navegador web, a través de HTTPS en la URL (https://ejemplo.com). Su navegador le advertirá de que el certificado es autofirmado. Usted debe ser capaz de ver el certificado y confirmar que los datos coincidan con lo que introdujo en el paso 3.
Redireccionar Siempre a "https"
(Recomendado) Modificar el anfitrión no cifrado de archivos virtual para redirigir a HTTPS. En este caso usamos el virtual host "000-default.conf"
sudo nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
. . .
Redirect "/" "https://tu_dominio_o_IP/"
. . .
</VirtualHost>