Instalar certificado SSL en Nginx

Para que tu servidor Nginx responda a travez de https, necesitaras un certificado SSL generado por una entidad certificadora valida.

Configurando Nginx

Lo primero que debemos hacer es habilitar el servidor para que reciba peticiones por https, para esto en el archivo de configuración que normalmente se encuentra en /etc/nginx/conf.d/default.conf

server {  
   listen 443 ssl;
   server_name your.domain.com;
   root /usr/share/nginx/html; // define el directorio root de tus pagina html
   index index.html; // define el archivo index de tu sitio
   access_log /var/log/nginx/your.domain.com.access.log; // ruta donde quedaran lo logs de acceso
   error_log /var/log/nginx/your.domain.com.error.log; // ruta donde quedaran los logs de errores
}

con la configuracion anterior hacemos que Nginx responda por el puerto 443 que corresponde a https por defecto. Tambien puedes darte cuenta que debes agregar el nombre del dominio de tu sitio your.domain.com.

Creando el SSL Request

Para solicitar el certificado ante la entidad certificadora necesitaras genera un certificado de solicitud, para esto ejecuta el siguiente comando en la terminal

$ openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout your.domain.com.key -out your.domain.com.csr

-days no deberá ser mayor a dos años 730 para certificados comerciales.

-nodes al usar este parámetro evita que se cree una clave que deberá ser ingresada cada vez que reinicies el servidor.

Una vez inicie el proceso de creación deberas ingresar una información adicional. Lo importante es que en Common Name (e.g. server FQDN or YOUR name) deberas colocar el dominio de tu sitio.

Luego de esto ya tendras en el directorio donde ejecutaste el comando anterior dos archivos your.domain.com.key y your.domain.com.csr. Este ultimo .csr será el que deberas enviar a la entidad certificadora para solicitar tu certificado.

 Instalando el certificado

Cuando la entidad certificadora te envíe el certificado deberas guardarlo en un archivo plano con extención .cer.

Por lo general deberas agregar en este mismo archivo los certificados intermedios lo cuales deberá proveértelos la entidad certificadora.

Tu archivo de certificado your.domain.com.cer deberá quedas así:

-----BEGIN CERTIFICATE----- 
(Tu certificado SSL your.domain.com.cer) 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
(Certificado intermedio ) 
-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 
(Certificado Root) 
-----END CERTIFICATE-----

ahora deberas guardarlo junto con el archivo your.domain.com.key y referenciarlos en la configuración de nginx, /etc/nginx/conf.d/default.conf.

   ...
   index index.html; // define el archivo index de tu sitio
   ssl_certificate /usr/share/nginx/certs/nginx.crt;
   ssl_certificate_key /usr/share/nginx/certs/nginx.key;
   access_log /var/log/nginx/your.domain.com.access.log; // ruta donde quedaran lo logs de acceso
   ...

Ahora solo debes reiniciar Nginx y listo ya podrás acceder a tu servidor a travez de https.

Jose Aponte

Desarrollador full-stack apasionado por las tecnologías de información y los lenguajes de programación. Me gustan divertirme con mi familia, mi lema es "Nunca paras de Aprender"

Bogota

Subscribe to Jappsku Engineering Blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!