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