Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Socket.io/Node.js和SSL_Node.js_Ssl_Socket.io - Fatal编程技术网

Socket.io/Node.js和SSL

Socket.io/Node.js和SSL,node.js,ssl,socket.io,Node.js,Ssl,Socket.io,我最近从Comodo购买了一个SSL证书。他们寄给我这些文件: AddTrustExternalCARoot.crt PositiveSSLCA2.crt mydomain.crt 然后我像这样创建了我的私钥和ca包 openssl genrsa -des3 -out mydomain.key 1024 cat PositiveSSLCA2.crt AddTrustExternalCARoot.crt > mydomain.ca-bundle 这是我用来把所有这些放在一起的代码。我在C

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

AddTrustExternalCARoot.crt
PositiveSSLCA2.crt
mydomain.crt
然后我像这样创建了我的私钥和ca包

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会将证书发回给您

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


此外,节点的
tls
模块无法解析证书束。您必须在数组中分别传递每个证书

{
    key: fs.readFileSync('mydomain.key'),
    cert: fs.readFileSync('mydomain.crt'),
    ca: [ fs.readFileSync('AddTrustExternalCARoot.crt'), fs.readFileSync('PositiveSSLCA2.crt') ]
}
这本书有更多的细节