Generar en un sólo paso, clave privada (con o sin passphrase) y CSR:
$ openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr
Generar clave privada, con password y clave de 4096 bits
$ openssl genrsa -des3 -out example.com_secure.key 4096
Generar CSR con la clave que hayamos creado anteriormente
$ openssl req -new -key example.com_secure.key -out example.com.csr
Eliminar la "passphrase" de la clave privada para que no nos la pida al arrancar. (En este caso, la clave debe ser sólo legible por root, etc).
$ openssl rsa -in example.com_secure.key -out example.com.key
Certificado PEM CA de StartSSL: http://www.startssl.com/certs/ca.pem Certificado PEM Intermedio de StartSSL: http://www.startssl.com/certs/sub.class1.server.ca.pem
Para que el fichero PEM sea válido para NGINX, debe concatenarse los certificados anteriores en este orden:
- Nuestro certificado
- Certificado PEM intermedio
- Certificado CA root
Ejemplo para hacerlo desde línea de comandos:
cat dominio.crt sub.class1.server.ca.pem ca.pem > dominio.cert-chain.crt
Activar la cabecera HTTP "Strict-Transport-Security" obliga a los navegadores a usar sólo SSL:
# Remember this setting for 365 days
add_header Strict-Transport-Security max-age=31536000;
Activar la cabecera siguiente si no queremos que los contenidos HTTPS se puedan meter dentro de frames:
add_header X-Frame-Options DENY;