生成 SSL 密钥以使用 node.js

Posted

技术标签:

【中文标题】生成 SSL 密钥以使用 node.js【英文标题】:Generating an SSL Key to work with node.js 【发布时间】:2012-11-07 00:52:19 【问题描述】:

我正在努力通过 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()

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

【问题讨论】:

这个问题也是一个答案。您的 openssl 命令适合“为 Node.js 应用程序生成 CSR” 这很明显,我很慢,或者不是,而且可能有很多像我这样的人需要这些信息,所以我希望我可以投票支持既是问题又是答案。 【参考方案1】:

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

【讨论】:

为什么 ca 周围有 [] 而其他字段没有? @RachelDRoy:阅读文档。 ca 接受一系列证书,以防有多个链。例如,如果gd_bundle 本身由另一个证书签名。 尤里卡!有用!示例中的 note this part 对我的 GoDaddy SSL 证书特别有用。 由于您尝试将数组传递给ca,因此您应该正确拆分【参考方案2】:

您应该在创建 http 服务器实例时使用 .crt.key 文件。下面的 sn-p 会给你这个想法:

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

【讨论】:

以上是关于生成 SSL 密钥以使用 node.js的主要内容,如果未能解决你的问题,请参考以下文章

在 Tomcat 中配置 SSL/TLS 以支持 HTTPS

Nginx负载均衡ssl原理生成ssl密钥对Nginx配置ssl

Nginx负载均衡 ssl原理 生成ssl密钥对 Nginx配置ssl

Nginx负载均衡 ssl原理 生成ssl密钥对 Nginx配置ssl

Nginx负载均衡,ssl原理,生成ssl密钥对,Nginx配置ssl

SSL/TLS深度解析--OpenSSL 生成自签证书