我正在通过GoDaddy设置一个安全套接字层,以便与我在亚马逊网络服务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
然后我得到了企业社会责任: vim files.mysite.csr
我从以下位置复制和粘贴:
-----BEGIN CERTIFICATE-----
......... lots of stuff
-----END CERTIFICATE-----
末尾有一个额外的空行,我将其保留下来并使用rekey粘贴到GoDaddy接口中。
然后我下载了godaddy密钥,它提供了:
gd_bundle.crt
files.mysite.com.crt
然后在节点I中插入:
key: fs.readFileSync('server.key').toString(),
cert: fs.readFileSync('server.crt').toString()
我不确定什么是server.key或server.crt,因为GoDaddy提供了两个crt文件?
你能帮上忙吗?
发布于 2012-11-19 16:50:06
GoDaddy使用中间证书来签署您的证书。这对您和GoDaddy都有几个好处。但它需要更多的工作才能工作(只需要一点,主要是在谷歌上搜索)。
在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);
发布于 2012-11-19 15:07:35
您应该在创建http服务器实例时使用.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);
https://stackoverflow.com/questions/13448065
复制相似问题