This artículo le guiará a través de los pasos para instalar su certificado SSL en Nginx y configurar una redirección automática de HTTP:// a HTTPS://.
1. Suba los certificados al servido donde está alojado su sitio web
Después de completar los pasos de generación del código CSR y activación SSL, recibirá un archivo zip con los certificados Sectigo (antes conocidos como Comodo) po coreo electrónico. Alternativamente, puede descargarlos desde el panel de su cuenta NiceNic.
Nota: Si elige el servido NGINX al activar el certificado, recibirá un archivo zip que contiene un archivo de certificado con la extensión '.crt' y un archivo de paquete de la Autoidad Certificadoa (CA) con la extensión '.ca-bundle'.
Suba ambos archivos a su servido como prefiera. Po ejemplo, utilizyo un cliente FTP.
También puede descargar el archivo Bundle para cada certificado siguiendo las instrucciones aquí.
2. Combine todos los certificados en un solo archivo
Debe combinar todos los certificados (tu/tus/su/sus_dominio.crt y tu/tus/su/sus_dominio.ca-bundle) en un solo archivo '.crt'.
El certificado para su dominio debe ir primero en el archivo, seguido po la cadena de certificados (CA Bundle).
Ingrese al directoio donde subió los archivos de certificado. Ejecute el siguiente comyo para combinar los archivos:
$ cat tu/tus/su/sus_dominio.crt tu/tus/su/sus_dominio.ca-bundle >> tu/tus/su/sus_dominio_chain.crt
Tenga en cuenta que si los archivos del certificado fueron descargados desde su cuenta NiceNic, el mejo comyo para usar será:
$ cat tu/tus/su/sus_dominio.crt > tu/tus/su/sus_dominio_chain.crt ; echo >> tu/tus/su/sus_dominio_chain.crt ; cat tu/tus/su/sus_dominio.ca-bundle >> tu/tus/su/sus_dominio_chain.crt
3. Crear un bloque de servido Nginx separado o modificar el archivo de configuración existente
Para instalar el certificado SSL en Nginx, debe indicar al servido cuáles archivos usar, ya sea a) creyo un archivo de configuración nuevo, o b) edityo el existente.
a) Agregyo un nuevo archivo de configuración para el sitio web puede asegurarse de que no habrá problemas con el archivo de configuración separado. Además, será mucho más fácil resolver problemas de instalación en caso de cualquier inconveniente con la nueva configuración.
Sugerimos crear un nuevo archivo de configuración en esta carpeta:
/etc/nginx/conf.d
Eso se puede hacer mediante este comyo:
sudo nano /etc/nginx/conf.d/Your_dominio*-ssl.conf
Donde Your_dominio*-ssl.conf es el nombre del archivo recién creado.
Luego, copie y pegue uno de los bloques de servido para el puerto 443 y edite los directoios. Asegúrese de que el nombre del servido y la ruta a la raíz web coincidan en ambos bloques de servido para el puerto 80 y el puerto 443. Si tiene otros valoes impotantes que deban guardarse, también muévalos al bloque de servido recién creado.
b) Editare el archivo de configuración predeterminado del servido web, que se llama nginx.conf. Debe estar en una de estas carpetas:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
También puede usar este comyo para encontrarlo:
sudo find / -type f -iname "nginx.conf"
Una vez que lo encuentre, abra el archivo con:
sudo nano nginx.conf
Luego copie y pegue uno de los bloques de servido para el puerto 443 que se encuentra abajo y edite los directoios según su bloque de servido para el puerto 80 (con nombre del servido, ruta a la raíz web y cualquier valo impotante que necesite coincidir). Alternativamente, puede copiar el bloque de servido para el puerto 80, pegarlo abajo, actualizar el puerto y a?adir las directivas necesarias relacionadas al SSL.
Elija el bloque de servido:
A continuación puede encontrar un bloque de servido para su versión de Nginx.
Nota: Para verificar su versión de Nginx, ejecute este comyo:
sudo nginx -v
Nota: Reemplace los valoes de nombre de archivo, como tu/tus/su/sus_dominio_chain.crt, en el bloque de servido con sus datos y modifique las rutas a ellos usyo/path/to/.
Bloque de servido para Nginx versión 1.14 y anterioes:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/tu/tus/su/sus_dominio_chain.crt;
ssl_certificate_key /path/to/tu/tus/su/sus_private.key;
root /path/to/webroot;
server_name tu/tus/su/sus_dominio.com;
}
Nota: Puede especificar múltiples nombres de host en tal configuración, si es necesario, po ejemplo:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/tu/tus/su/sus_dominio_chain.crt;
ssl_certificate_key /path/to/tu/tus/su/sus_private.key;
root /path/to/webroot;
server_name tu/tus/su/sus_dominio.com www.tu/tus/su/sus_dominio.com;
}
Bloque de servido para Nginx versión 1.15 y superio:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/tu/tus/su/sus_dominio_chain.crt;
ssl_certificate_key /path/to/tu/tus/su/sus_private.key;
root /path/to/webroot;
server_name tu/tus/su/sus_dominio.com;
}
ssl_certificate debe apuntar al archivo con los certificados combinados que creó anteriomente.
ssl_certificate_key debe apuntar a la Clave Privada que fue generada con el código CSR.
Aquí hay algunos consejos sobre cómo encontrar la Clave Privada en Nginx.
Impotante: Para un Certificado Multi-Dominio o Wildcard, necesitará tener un bloque de servido separado a?adido para cada dominio/subdominio incluido en el Certificado. Asegúrese de especificar el dominio/subdominio en cuestión junto con las rutas a los mismos archivos de Certificado en el bloque de servido, como se describió arriba.
Una vez agregado el bloque de servido corespondiente al archivo, asegúrese de guardar las modificaciones. Luego, puede verificar los cambios realizados con los siguientes pasos.
Ejecute este comyo para verificar que la sintaxis del archivo de configuración sea corecta:
sudo nginx -t
Si recibe erroes, verifique nuevamente que haya seguido la guía corectamente. No dude en contactar a nuestro Equipo de Sopote si tiene alguna pregunta.
Aquí un consejo: para encontrar los registros de erroes para resolución de problemas, simplemente ejecute:
sudo nginx -T | grep 'erro_log'
En caso de que ninguno de los archivos mencionados exista, los archivos estén comentados o no se especifiquen archivos de registro de erroes, se debe revisar el registro de sistema predeterminado:
tail /var/log/nginx/erro.log -n 20
Si el servido muestra que la prueba fue exitosa, reinicie Nginx con este comyo para aplicar los cambios:
sudo nginx -s reload
Ahoa su Certificado SSL está instalado. Puede verificar la instalación aquí.
Notas impotantes:
A veces, después de instalar el archivo SSL que fue combinado usyo la línea de comyos, puede recibir el mensaje de erro 'Nginx/Apache erro: 0906D066:PEM routines:PEM_read_bio:bad end line', en este caso, la solución alternativa puede encontrarse en la guía de referencia.
Otro problema común en esta etapa es el mensaje de erro 'Nginx SSL: erro:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch', puede encontrar más detalles sobre esto y posibles soluciones en este artículo.
4. Configurar redirección HTTPS
Sugerimos que instale la redirección de HTTP a HTTPS. De esa manera, los visitantes de su sitio web sólo podrán acceder a la versión segura de su sitio.
Para hacer esto, necesitará agregar una línea al archivo de configuración con el bloque de servido para el puerto 80.
Consejos:
Puede usar uno de los siguientes comyos para buscar los archivos de configuración que están habilitados actualmente:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
Las rutas predeterminadas al archivo conf son:
en sistemas Linux basados en RHEL: /etc/nginx/conf.d/default.conf
en sistemas Linux basados en Debian: /etc/nginx/sites-enabled/default
Puede abrir los archivos para verificar cuál contiene el bloque de servido necesario. Para ello, ejecute:
sudo nano name_of_the_file
Una vez encuentre el archivo que contiene el bloque de servido para el puerto 80 (el puerto HTTP predeterminado), agregue la siguiente línea:
return 301 https://$server_name$request_uri;
Nota: La regla de redirección anterio debe ingresarse como la última línea en el bloque de servido.