gpt4 book ai didi

node.js - 在 node/express 上安装 RapidSSL 证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:34 24 4
gpt4 key购买 nike

我对如何在我的 Node 服务器上配置 SSL 感到非常困惑!

我目前所做的是:

-在我的本地机器上创建一个自签名 key 和证书用于本地测试

-将此代码添加到我的快速设置中

var privateKey = fs.readFileSync('privatekey.pem', 'utf8');
var certificate = fs.readFileSync('certificate.pem', 'utf8');
https.createServer({
key: privateKey,
cert: certificate
}, app).listen(port);

这在本地没问题(我收到浏览器错误,但我知道那是因为我是自签名的,我不是受信任的机构)。

现在我想使用真正的证书进行部署,所以我从 RapidSSL 买了一个。他们在电子邮件中以明文形式向我发送了两个 key ,格式均为

-----BEGIN CERTIFICATE-----
blah
-----END CERTIFICATE-----

一个标记为Web 服务器证书,另一个标记为INTERMEDIATE CA

我将 Web 服务器 CERTIFICATE 的内容复制到一个名为(为了这个问题)prodPrivatekey.pem 的新文件,并且我移动了 INTERMEDIATE CAprodCertificate.pem。然后我替换了上面代码中的路径。


首先,有人可以告诉我此操作过程是否正确吗?假设我对 SSL 证书的内部工作原理几乎一无所知!

其次,如果是,我在这个设置中遇到的错误是Error: error:0906D06C:PEM routines:PEM_read_bio:no start line。我能找到的唯一帮助是这个问题 Node.js https pem error: routines:PEM_read_bio:no start line但这里的帮助似乎与自签名证书有关。

感谢您的帮助!

最佳答案

var privateKey = fs.readFileSync('privatekey.pem', 'utf8');

privateKey 应该是您的 私钥。您不会将此信息提供给 RapidSSL 或从 RapidSSL 那里收到此信息。

var certificate = fs.readFileSync('certificate.pem', 'utf8');

certificate 应该是一个 RapidSSL 标记为 Web 服务器 CERTIFICATE

剩下 INTERMEDIATE CA。这是一个中间证书(介于您的和 RapidSSL 的根证书之间)。您需要将其包含在您的应用程序中,否则某些浏览器(例如 Android 上的浏览​​器)会看到错误指示“不受信任的证书”或类似性质的内容。

要将其包含在您的配置中,您需要执行以下操作:

var intermediateCertificate = fs.readFileSync('intermediate.pem', 'utf8');
https.createServer({
key: privateKey,
cert: certificate,
ca: [ intermediateCertificate ]
}, app).listen(port);

一旦成功并且您的网站是公开的,请使用在线扫描仪(例如 SSL Labs Server Test)测试您网站的 SSL 配置。查看您的 SSL 配置是否安全(得分 A 或 A+)。根据您运行的 Node 版本,默认设置可能不够安全。

关于node.js - 在 node/express 上安装 RapidSSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39598336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com