Antes de comprar el certificado, debemos de tener listo nuestro archivo CSR (Certificate Signing Request) y nuestra llave privada. Te preguntaran por le contenido del archivo csr
openssl req -new -newkey rsa:2048 -nodes -keyout example_com.key -out example_com.csr
Esto nos genera dos archivos:
- example_com.key — Tu llave privada. La necesitarás más adelante para configurar nginx.
- example_com.csr — Tu archivo CSR.
Ahora, compras el certificado, sigues los pasos en sus sitio web y deberías recibir pronto un correo electrónico con tu certificado PositiveSSL.
Instalando el Certificado en Nginx.
Combinamos todo para nginx.
- Combine los anteriores certificados. (El orden importa aquí)
cat SUDOMINIO.CRT SectigoRSADomainValidationSecureServerCA.crt USERTrustRSAAAACA.crt AAACertificateServices.crt >> ssl-bundle.crt
- Mueve los archivos a un lugar al que Nginx tenga acceso
mkdir -p /etc/nginx/ssl/example_com/ mv ssl-bundle.crt /etc/nginx/ssl/example_com/
- Asegurate que la llave privada está en un lugar al que Nginx tenga acceso de lectura.
mv example_com.key /etc/nginx/ssl/example_com/
- Para mejorar la seguridad de nuestro servidor, vamos a generar una nueva llave de intercambio DHS (Es algo complicado de explicar, pero cuando nuestro servidor va a iniciar la comunicación cifrada, hace un intercambio de llaves DHS que por default es de 1024 bits). La generación de dicha llave de intercambio puede tomar algunos minutos.
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 4096 - Asegúrate que Nginx apunta a los archivos correctos
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/example_com/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example_com/example_com.key;
# Secure exchange process
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
# Enable SSL Cache ssl_session_cache shared:SSL:5m;
ssl_session_timeout 1h;
# Enable HTTP Strict Transport Security add_header
Strict-Transport-Security "max-age=31536000;
includeSubDomains" always;
# side note: only use TLS since SSLv2 and SSLv3 have had recent vulnerabilities
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # ...
}
Reinicia Nginx
Actualizado: Agregué un paso 4 para crear una llave DHS y también algunos parámetros para incrementar la seguridad de nuestro servidor usando SSL. Ahora pueden ir a este sitio y hacer una prueba de la seguridad de su servidor.