nodejs - Generar una clave SSL para trabajar con node.js
openssl nodejs (2)
Estoy trabajando para configurar un SSL a través de GoDaddy para usarlo con mi servidor node.js en AWS EC2. No he podido hacer que funcione.
Esto es lo que he intentado:
Destinado para el dominio: files.mysite.com
En el servidor que ejecuto:
$ openssl req -new -newkey rsa:2048 -nodes -keyout files.mysite.key -out files.mysite.csr
Common Name: files.mysite.com
password: left empty
Luego obtengo el CSR: vim files.mysite.csr
Copio y pego desde:
-----BEGIN CERTIFICATE-----
......... lots of stuff
-----END CERTIFICATE-----
Hay una línea vacía adicional al final, que dejo y pego en la interfaz de GoDaddy usando rekey.
Luego descargo la clave godaddy que proporciona:
gd_bundle.crt
files.mysite.com.crt
Luego en el nodo I insertar:
key: fs.readFileSync(''server.key'').toString(),
cert: fs.readFileSync(''server.crt'').toString()
No estoy seguro de qué servidor.key es o server.crt dado que GoDaddy proporciona dos archivos crt?
¿Puede usted ayudar?
Debería usar archivos .crt
y .key
en la creación de su instancia de servidor http. El siguiente fragmento te dará la idea:
require(''https'').createServer({
key: fs.readFileSync(''/path/to/something.key''),
cert: fs.readFileSync(''/path/to/something.crt''),
}, app).listen(443);
Si tiene una frase de contraseña para su clave, puede pasarla de la siguiente manera:
require(''https'').createServer({
key: fs.readFileSync(''/path/to/something.key''),
cert: fs.readFileSync(''/path/to/something.crt''),
passphrase: ''your_secret_passpahrase''
}, app).listen(443);
GoDaddy usa un certificado intermedio para firmar su certificado. Esto tiene varias ventajas tanto para ti como para GoDaddy. Pero se necesita un poco más de trabajo para que funcione (solo un poco, principalmente buscando en Google).
En node.js puedes instalarlos así:
require(''https'').createServer({
key: fs.readFileSync(''files.mysite.com.key''),
cert: fs.readFileSync(''files.mysite.com.crt''),
ca: [fs.readFileSync(''gd_bundle.crt'')] // <----- note this part
}, app).listen(443);