【问题标题】:How to fix missing an Intermediate/chain certificate in nodejs如何修复 nodejs 中缺少中间/链证书
【发布时间】:2015-12-23 00:36:24
【问题描述】:

我已经在我的服务器上安装了 nodejs 和 ssl

还有我的 app.js 代码

var sslOptions = {
  key: fs.readFileSync('/etc/ssl/private/private.key'),
  cert: fs.readFileSync('/etc/ssl/certs/cert.com.crt'),
  requestCert: true,
  ca: fs.readFileSync('/etc/ssl/certs/ca.crt'),
  rejectUnauthorized: false 
};

var secureServer = https.createServer(sslOptions,app).listen(443, function(){
   console.log("Express server listening on port ");

});

现在当我检查时

https://www.sslshopper.com/

它给了我错误

并非所有网络浏览器都信任该证书。你可能需要 安装中间/链证书以将其链接到受信任的根 证书。了解有关此错误的更多信息。您可以通过以下方式解决此问题 按照 Comodo 的证书安装说明为您的 服务器平台(将这些说明用于 InstantSSL)。注意 关于中级证书的部分。

有什么想法吗?

如何解决这个问题

【问题讨论】:

    标签: node.js ssl


    【解决方案1】:

    注释掉添加 ca 包的行。从 ca.crt 复制所有文本并将它们粘贴到 cert.com.crt 中(不要替换以前的证书,只需粘贴在它下面)。现在应该可以正常工作了。

    var sslOptions = {
      key: fs.readFileSync('/etc/ssl/private/private.key'),
      cert: fs.readFileSync('/etc/ssl/certs/cert.com.crt'),
      requestCert: true,
      //ca: fs.readFileSync('/etc/ssl/certs/ca.crt'),
      rejectUnauthorized: false 
    };
    
    var secureServer = https.createServer(sslOptions,app).listen(443, function(){
       console.log("Express server listening on port ");
    
    });
    

    【讨论】:

    • 还是有同样的问题
    • 我发现了一个非常相似的代码here
    • 哇,这对我有用。我用whatsmychaincert.com 上的端口测试了我的nodeJS 应用程序,它给了我一个链证书。我按照你的建议添加了它。非常感谢。
    • Let'sEncrypt 文件夹中的哪个文件类似于ca.crt?我们有:cert.pemchain.pemfullchain.pemprivkey.pem
    • @exebook 见this answer
    猜你喜欢
    • 2023-03-03
    • 2021-12-04
    • 2011-10-27
    • 2015-11-22
    • 2013-09-28
    • 2019-06-21
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    相关资源
    最近更新 更多