【问题标题】:Socket.io/Node.js and SSLSocket.io/Node.js 和 SSL
【发布时间】:2014-02-26 05:46:21
【问题描述】:

我最近从 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 });

【问题讨论】:

    标签: node.js ssl socket.io


    【解决方案1】:

    您在获得证书之前在生成您的私钥。

    当 CA 签署带有特定私钥的公钥时,就会创建证书。您生成一个私钥,然后创建一个包含公钥的 CSR。 CA 将证书发回给您。

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


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

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

    docs 有更多详细信息。

    【讨论】:

      猜你喜欢
      • 2013-05-27
      • 2012-09-19
      • 2016-06-06
      • 2018-06-29
      • 2011-09-29
      • 2014-11-29
      • 2015-08-20
      • 2017-05-24
      • 2013-02-25
      相关资源
      最近更新 更多