繁体   English   中英

Socket.io/Node.js和SSL

[英]Socket.io/Node.js and SSL

我最近从Comodo购买了SSL证书。 他们发给我这些文件:

AddTrustExternalCARoot.crt
PositiveSSLCA2.crt
mydomain.crt

然后,我创建了我的私钥和ca-bundle,

openssl genrsa -des3 -out mydomain.key 1024
cat PositiveSSLCA2.crt AddTrustExternalCARoot.crt > mydomain.ca-bundle

这是我用来将它们放在一起的代码。 我在Chrome中遇到SSL连接错误。

var privateKey = fs.readFileSync('./mydomain.key').toString();
var certificate = fs.readFileSync('./mydomain.crt').toString();
var ca = fs.readFileSync('./mydomain.ca-bundle').toString();

var io = require('socket.io').listen(1200, { key:privateKey,cert:certificate,ca:ca });

颁发证书之前生成私钥。

当CA签署与特定私钥一起使用的公钥时,将创建证书。 您生成一个私钥,然后您创建一个包含公钥的CSR。 CA会向您发送证书。

您必须在获得证书之前的某个时刻生成私钥 - 您必须使用它。 如果您尝试使用在颁发证书后生成的私钥,它显然与证书中的公钥不匹配。


此外,node的tls模块无法解析证书包。 您必须在阵列中单独传递每个证书。

{
    key: fs.readFileSync('mydomain.key'),
    cert: fs.readFileSync('mydomain.crt'),
    ca: [ fs.readFileSync('AddTrustExternalCARoot.crt'), fs.readFileSync('PositiveSSLCA2.crt') ]
}

文档有更多细节。

暂无
暂无

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

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