如何修复nodejs中丢失的中间/链证书

Hit*_*sal 9 ssl 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 ");

});
Run Code Online (Sandbox Code Playgroud)

现在,当我检查

https://www.sslshopper.com/

它给了我错误

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

任何的想法 ?

如何解决这个问题

Vij*_*ran 21

注释掉添加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 ");

});
Run Code Online (Sandbox Code Playgroud)

  • 哇,这对我有用。我在 https://whatsmychaincert.com 上测试了我的 NodeJS 应用程序,它给了我一个链证书。我按照你的建议添加了它。多谢。 (2认同)
  • Let'sEncrypt 文件夹中的哪个文件类似于`ca.crt`?我们有: `cert.pem` `chain.pem` `fullchain.pem` `privkey.pem` (2认同)
  • @exebook请参阅[此答案](/sf/answers/4174515061/)。 (2认同)