En este tutorial, le mostraremos cómo configurar Nginx con SSL en su servidor Linux. Para aquellos de ustedes que no sabían, Transport Layer Security (TLS) y Secure Socket Layer ( SSL) proporciona un método fácil para cifrar las conexiones entre los usuarios finales y los servidores web. SSL utiliza un sistema de autoridad de certificación para proporcionar verificación de identidad a fin de evitar que los sitios web afirmen falsamente ser otra organización o sitio web. Este tutorial le muestra cómo configurar fuerte seguridad SSL en el servidor web Nginx.
Este artículo asume que tiene al menos conocimientos básicos de Linux, sabe cómo usar el shell y, lo que es más importante, aloja su sitio en su propio VPS. La instalación es bastante simple y asume que se están ejecutando en la cuenta raíz, si no, es posible que deba agregar 'sudo
' a los comandos para obtener privilegios de root. Le mostraré paso a paso cómo configurar Nginx con SSL en su Linux.
Configurar Nginx con SSL
Obligatorio:
- Suponiendo que haya instalado el servidor web Nginx.
- Utilizo Namecheap como registrador y ellos revenden certificados SSL de otras empresas, incluida Comodo.
Paso 1. Crear un directorio
mkdir -p /etc/nginx/ssl/idroot.us
Paso 2. Generación de su clave SSL y CSR
Antes de comprar un certificado, debe generar una clave privada y un archivo CSR (Solicitud de firma de certificado). Se le pedirá el contenido del CSR cuando solicite el certificado. Para Nombre común, ingrese el nombre de dominio deseado sin "www", es decir, idroot.us. Si es un Wildcard SSL, use *.idroot.us.
openssl req -nodes -newkey rsa:2048 -keyout idroot.us.key -out idroot.us.csr
Paso 3. Crear un paquete de certificados
Después de comprar el certificado, eventualmente recibirá un correo electrónico con su certificado SSL. Contiene un archivo zip con lo siguiente:
- AddTrustExternalCARoot.crt
- COMODORSAAddTrustCA.crt
- COMODORSADomainValidationSecureServerCA.crt
- idroot_net.crt
cat idroot_net.crt AddTrustExternalCARoot.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt >> ssl-bundle.crt
Una vez que haya creado un paquete de certificados, puede moverlo a su directorio Nginx SSL.
mv ssl-bundle.crt /etc/nginx/ssl/idroot.us/
Paso 4. Configurar el Certificado para Nginx
Vaya a la configuración de host virtual de Nginx, el uso de SSL con Nginx requiere una modificación de la directiva de escucha y tres directivas relacionadas con SSL, como se muestra en los siguientes ejemplos:
nano /etc/nginx/conf.d/ssl.conf
server { listen 443 ssl spdy; server_name www.idroot.us idroot.us; root /var/www/idroot.us/public_html; index index.php index.html index.htm; server_tokens off; #SSL CONF ssl on; ssl_certificate /etc/nginx/ssl/idroot.us/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/idroot.us/idroid.us.key; #SSL ssl_session_cache shared:SSL:20m; ssl_session_timeout 10m; ssl_prefer_server_ciphers On; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s; # permalink location / { try_files $uri $uri/ /index.php?$args; } # php-script handler location ~ \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; root /var/www/idroot.us/public_html; fastcgi_param SCRIPT_FILENAME /var/www/idroot.us/public_html$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~ /\.ht { deny all; } }
Paso 5. Redirigir hosts virtuales HTTP a HTTPS
return 301 https://idroot.us$request_uri;
Paso 6. Reinicie/recargue Nginx.
/etc/init.d/nginx restart
¡Felicitaciones! Ha instalado correctamente Nginx con SSL. Gracias por utilizar este tutorial para instalar y configurar Nginx con SSL en un sistema Linux. Para obtener ayuda adicional o información útil, le recomendamos que consulte el sitio web oficial Sitio web de Nginx.