繁体   English   中英

在 node/express 上安装 RapidSSL 证书

[英]Installing a RapidSSL certificate on node/express

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

我所做的是:

- 在我的本地机器上创建一个自签名的密钥和证书以进行本地测试

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

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

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

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

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

一个标记为Web server CERTIFICATE ,另一个标记为INTERMEDIATE CA

我将Web server CERTIFICATE的内容复制到一个名为(为了这个问题) prodPrivatekey.pem的新文件,并将prodPrivatekey.pem INTERMEDIATE CA移动到prodCertificate.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+)。 根据您运行的节点版本,默认值可能不够安全。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM