Certificado SSL en nginx, configuración y puesta en marcha
Si quieres proteger tu web con un certificado SSL en nginx y se te ha caducado, necesitas un nuevo certificado SSL válido y acceso por SSH a tu servidor web para solucionarlo.
Si ya has preparado ambas cosas, a continuación te explico como actualizar el certificado SSL de una web vía SSH, pero primero hay que encontrar donde están instalados, para ello vamos a buscar en la ruta por defecto de nginx:
/etc/nginx/sites-available
Ahí nos aparecerán los sitios disponibles, es posible que tengáis otra carpeta más que se llame sites-enabled, entrad hasta ahí, normalmente hay una carpeta más llamada default, pero pueden estar en otras carpetas según la configuración, nosotros vamos a ver el default ya que es la que contiene la configuración del sitio, es algo como esto:
Archivo de configuración del certificado SSL en nginx
# Upstreams upstream backend { server 127.0.0.1:3000; } # Redirect Options server { listen 80; server_name rocket2.zimbra.io; # enforce https return 301 https://$server_name$request_uri; } # HTTPS Server server { listen 443; server_name misubdominio.dkreativo.es; error_log /var/log/nginx/rocketchat.access.log; ssl on; ssl_certificate /etc/nginx/certifica.crt; ssl_certificate_key /etc/nginx/certifica.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE location / { proxy_pass http://backend/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } }
Aunque hay bastantes líneas de configuración para nginx, las líneas que nos interesan son en las que se está declarando la ubicación en el dominio de nuestro certificado SSL:
ssl_certificate /etc/nginx/certifica.crt; ssl_certificate_key /etc/nginx/certifica.key;
En ambas líneas se está especificando por un lado la Key del certificado y el certificado en sí mismo, ambos archivos ubicados en el lugar que queramos, siempre y cuando tengan permisos para nginx, lo más sencillo es ubicarlos en su misma carpeta o una subcarpeta dentro de ella.
En este caso, ahí se pueden copiar los certificados que nos proporciona el proveedor y garantizamos la accesibilidad por permisos de nginx.
Si tuvieras dudas, en la configuración en el default de nginx nos indica o debe indicarnos donde crearlos o actualizarlos.
Recuerda, los archivos certificado.key y certificado.crt son los necesarios para la configuración del certificado SSL en nginx. La ubicación es solo para indicar donde está, puedes meterlo en alguna carpeta si quieres.
Recuerda para activar el certificado desde SSH
Debes de reiniciar tu servidor nginx para que tome los cambios, ya que si has modificado los archivos de configuración o en este caso de los certificados, es posible que la información esté cacheada o que simplemente no esté tomando correctamente la nueva configuración del certificado el propio motor nginx.
También hacerte saber que si trabajas con algún gestor como Plesk, toda esta problemática no es necesaria, de hecho configurar un certificado SSL en Plesk es muy sencillo tal y como explicamos en el tutorial.
Si tienes cualquier duda, no tengas problema en consultar desde los comentarios y te responderé con la mayor brevedad posible.