【问题标题】:Unable to get issuer certificate/Unable to get local issuer certificate无法获取颁发者证书/无法获取本地颁发者证书
【发布时间】:2016-04-20 23:29:34
【问题描述】:

我有一个要求,我的节点 js 中的 REST 服务需要通过 HTTPS 使用。为了启用 HTTPS,我们需要 3 个参数 - 一个密钥文件,一个 cert 文件和一个 ca 文件。为了使用这个服务,我们只需要 ca 文件。

我使用 Open SSL 创建了一组新的自签名证书,并且可以使用我的服务。


现在,对于生产部署,我们不能使用自签名证书。因此,从证书颁发机构收到了密钥文件、证书文件和 ca 文件。与我使用的自签名证书不同,证书颁发机构的 ca 文件包含 2 个 CA cer——一个根 CA 和一个子 CA。

在尝试使用此 CA 文件使用 HTTPS 服务时,我一直收到错误消息:无法获取颁发者证书/无法获取本地颁发者证书。

使用 OpenSSL 命令,我验证了密钥和证书文件——两者的模数完美匹配。

另外,当我尝试检查证书是否是使用 CA 文件颁发时,我遇到了同样的错误。而使用自签名证书,我得到了 Okay 响应。

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

标签: node.js https openssl


【解决方案1】:

此问题可能是由缺少证书链引起的。如果您从 CA 购买证书,请确保您正确打包并部署了中间证书链以及最终证书。

否则,您的证书将被标记为无效,因为客户端将无法遍历从您的证书到根证书的颁发链。

【讨论】:

  • 非常感谢西蒙妮。这个问题想通了。实际上,两个 CA 证书都存在于同一个 .pem 文件中。当这个文件通过时,只有第一个证书被读取。实际上,当一个证书数组通过时,node js 将始终只读取第一个证书!
猜你喜欢
  • 1970-01-01
  • 2017-08-31
  • 2018-07-04
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
  • 2016-07-17
相关资源
最近更新 更多