一尘不染

如何修复Node.js中缺少的中间/链证书

node.js

我已经在服务器上安装了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/

它给我错误

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

任何想法 ?

如何解决这个问题


阅读 252

收藏
2020-07-07

共1个答案

一尘不染

注释掉添加ca
bundle的行。复制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 ");

});
2020-07-07