生成SSL密钥以使用node.js

我正在通过GoDaddy设置一个SSL来与AWS EC2上的我的node.js服务器一起使用。 我一直无法得到它的工作。

以下是我所尝试的:

面向域名:files.mysite.com

在服务器上运行:

$ openssl req -new -newkey rsa:2048 -nodes -keyout files.mysite.key -out files.mysite.csr Common Name: files.mysite.com password: left empty 

然后我得到CSR:vim files.mysite.csr

我从以下复制并粘贴:

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

最后有一个额外的空行,我使用rekey离开并粘贴到GoDaddy界面。

然后我下载提供的godaddy密钥:

 gd_bundle.crt files.mysite.com.crt 

然后在节点中插入:

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

我不知道什么server.key是或server.crt鉴于GoDaddy提供两个crt文件?
你能帮我吗?

GoDaddy使用中间证书签署您的证书。 这对你和GoDaddy都有好处。 但是它需要更多的工作来完成它(只是一点点,大部分都是用Googlesearch的)。

在node.js中,你可以像这样安装它们:

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

您应该在创buildhttp服务器实例时使用.crt.key文件。 以下片段将给你的想法:

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

如果您的密钥有密码,则可以按如下方式传递:

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