Este artículo explica brevemente cómo compilar Nginx desde sus fuentes con soporte para SSL (HTTPS) en Debian y derivados.



En el artículo Instalación y configuración de Nginx con PHP-FPM expliqué paso a paso cómo configurar e instalar Nginx en un servidor Debian. Ahora voy a explicar cómo agregar soporte para HTTPS, lo cual requiere recompilar Nginx.

Antes de comenzar es necesario instalar las librerías de desarrollo de SSL:

# apt-get install libssl-dev

Cambiar al directorio donde están los fuentes de Nginx:

# cd nginx-1.8.0

Por defecto, Nginx 1.8 se configura sin soporte para SSL. Para configurarlo con soporte para SSL, ejecutar:

# ./configure --with-http_ssl_module

Luego compilar:

# make

Si se está reinstalando, antes de instalar es necesario resguardar una copia de los archivos de configuración y logs dentro del directorio /usr/local/nginx/:

# cp -a /usr/local/nginx/ /usr/local/nginx-backup

Luego instalar:

# make install

Finalmente, recuperar los archivos de configuración y logs:

# cp -a /usr/local/nginx-backup/logs/* /usr/local/nginx/logs/
# cp -a /usr/local/nginx-backup/conf/* /usr/local/nginx/conf/

Configuración de HTTPS

Para poder utilizar HTTPS es necesario contar con un certificado SSL y su clave privada. Es posible comprar un certificado a una autoridad certificante de confianza (namecheap ofrece los certificados más económicos), o generar uno autofirmado (a modo de prueba) tal como explica el artículo .

Luego es necesario instalar el certificado en Nginx creando, en su configuración, una nueva sección servidor dentro del protocolo "http" que incluya los siguientes parámetros:

    server {
        listen 443 ssl;

        ssl_certificate      /ruta/al/certificado.crt;
        ssl_certificate_key  /ruta/al/certificado.key;

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

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

        //...

    }

Tanto el certificado como su clave privada deben tener permisos de lectura para el usuario con el que corre Nginx.

Si querés saber cómo funciona un certificado, te recomiendo leer el siguiente artículo: Cómo funciona un certificado SSL.

Además, ¿Querés saber cómo habilitar HTTP/2 en Nginx?


Tal vez pueda interesarte


Compartí este artículo