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

时间:2015-09-25 08:17:06

标签: node.js ssl

我在服务器上安装了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的这些说明)。请注意   关于中级证书的部分。

有什么想法吗?

如何解决此问题

1 个答案:

答案 0 :(得分:19)

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

});