Domanda Generazione di una chiave SSL per lavorare con node.js


Sto lavorando per configurare un SSL tramite GoDaddy da utilizzare con il mio server node.js su AWS EC2. Non sono riuscito a farlo funzionare.

Ecco cosa ho provato:

Destinato al dominio: files.mysite.com

Sul server eseguo:

$ openssl req -new -newkey rsa:2048 -nodes -keyout files.mysite.key -out files.mysite.csr

Common Name: files.mysite.com
password: left empty

Quindi ottengo il CSR: vim files.mysite.csr

Copia e incolla da:

-----BEGIN CERTIFICATE-----
......... lots of stuff
-----END CERTIFICATE-----

Alla fine c'è una linea in più vuota, che lascio e incolli nell'interfaccia di GoDaddy usando rekey.

Quindi scarica la chiave Godaddy che fornisce:

gd_bundle.crt
files.mysite.com.crt

Quindi nel nodo inserisco:

key: fs.readFileSync('server.key').toString(),
cert: fs.readFileSync('server.crt').toString()

Non sono sicuro di cosa sia server.key o server.crt dato che GoDaddy fornisce due file crt?
Puoi aiutare?


17
2017-11-19 05:17


origine


risposte:


GoDaddy utilizza un certificato intermidiato per firmare il tuo certificato. Questo ha molti vantaggi sia per te che per GoDaddy. Ma ci vuole un po 'più di lavoro per farlo funzionare (solo un po', in gran parte su google).

In node.js puoi installarli in questo modo:

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);

25
2017-11-19 08:50



Dovresti usare .crt e .key file alla creazione dell'istanza del server http. Il seguente frammento ti darà l'idea:

require('https').createServer({
    key: fs.readFileSync('/path/to/something.key'),
    cert: fs.readFileSync('/path/to/something.crt'),
}, app).listen(443);

Se hai una passphrase per la tua chiave, puoi passarla come segue:

require('https').createServer({
    key: fs.readFileSync('/path/to/something.key'),
    cert: fs.readFileSync('/path/to/something.crt'),
    passphrase: 'your_secret_passpahrase'
}, app).listen(443);

3
2017-11-19 07:07