Cómo crear un certificado SSL en Apache para Debian 8

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>