在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 line
是Error: 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 +)。 根据您正在运行的节点的版本,默认值可能不够安全。