Skip to content

Instantly share code, notes, and snippets.

@twoixter
Created July 4, 2012 00:16
Show Gist options
  • Save twoixter/3044312 to your computer and use it in GitHub Desktop.
Save twoixter/3044312 to your computer and use it in GitHub Desktop.
Nginx SSL and OpenSSL command tips

Generación de claves

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

Certificados de StartSSL

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

Otros

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;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment