Este artículo demuestra cómo configurar un servidor HTTPS utilizando Nginx en Debian.

Cambiar al directorio de configuración de Nginx y crear el archivo de configuración del sitio SSL:

root@debian:~# cd /etc/nginx/sites-available/
root@debian:/etc/nginx/sites-available# cp default default-ssl

Cambiar:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

Por:

server {
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;

Y agregar la configuración de SSL:

        ssl_certificate      /etc/ssl/linuxito/certs/www.linuxito.com.crt;
        ssl_certificate_key  /etc/ssl/linuxito/private/www.linuxito.com.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

Especificar la ruta exacta al certificado y su clave privada.

Habilitar el sitio y reiniciar Nginx:

root@debian:/etc/nginx/sites-available# cd ../sites-enabled/
root@debian:/etc/nginx/sites-enabled# ln -s ../sites-available/default-ssl .
root@debian:/etc/nginx/sites-enabled# ll
total 0
lrwxrwxrwx 1 root root 34 Dec 15 14:43 default -> /etc/nginx/sites-available/default
lrwxrwxrwx 1 root root 30 Dec 22 17:54 default-ssl -> ../sites-available/default-ssl
root@debian:/etc/nginx/sites-enabled# service nginx restart
root@debian:/etc/nginx/sites-enabled# netstat -tulpn | grep nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      8479/nginx: master  
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8479/nginx: master  
tcp6       0      0 :::443                  :::*                    LISTEN      8479/nginx: master  
tcp6       0      0 :::80                   :::*                    LISTEN      8479/nginx: master