在node / express上安装RapidSSL证书

我非常困惑如何在我的节点服务器上configurationSSL!

我所做的远远是:

– 在本地机器上创build一个自签名密钥和证书,以便在本地进行testing

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

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

这是很好的地方(我得到的浏览器错误,但我明白这是因为我自签名,我不是一个可信的权威)。

现在我想部署一个真正的证书,所以我从RapidSSL买了一个。 他们以电子邮件的明文forms向我发送了两个密钥

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

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

我将Web server CERTIFICATE的内容复制到一个名为(为了这个问题) prodPrivatekey.pem的新文件,并将INTERMEDIATE CA移动到了prodCertificate.pem 。 然后我replace上面代码中的path。


首先,有人可以告诉我,如果这个行动是正确的? 假设我几乎不了解SSL证书的内部工作原理!

其次,如果是这样,我得到这个设置的Error: error:0906D06C:PEM routines:PEM_read_bio:no start lineError: error:0906D06C:PEM routines:PEM_read_bio:no start line 。 唯一的帮助,我可以find的是这个问题Node.js HTM的Pem错误:例程:PEM_read_bio:没有启动线,但这里的帮助似乎涉及到自签名证书。

感谢您的任何帮助!

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

privateKey应该是你的私钥。 您不会将此信息发给RapidSSL或从RapidSSL收到。

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

certificate应该是一个RapidSSL已经标记的Web服务器证书

这留下了INTERMEDIATE CA 这是一个中间证书(在您和RapidSSL的根证书之间)。 您需要将其包含在您的应用程序中,否则某些浏览器(如Android上的浏览器)将会看到一个错误,指示“不可信证书”或某种性质的东西。

要包含在你的configuration,你会做这样的事情:

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

一旦这样做,并且您的网站是公开的,请使用SSL Labs Server Test等在线扫描程序来testing您的网站的SSLconfiguration,以查看您的SSLconfiguration是否安全(分数A或A +)。 根据您正在运行的节点的版本,默认值可能不够安全。