【问题标题】:node certificate store, does node read only from hard coded list of certificates?节点证书存储,节点是否仅从硬编码的证书列表中读取?
【发布时间】:2016-08-17 12:52:50
【问题描述】:

苦苦挣扎了一阵子,有什么办法可以添加新的 证书节点信任的证书列表?

似乎节点将信任存储在硬编码证书列表中的证书:https://github.com/nodejs/node/blob/master/src/node_root_certs.h

例如,节点应用程序应与使用自签名证书的https://foo-bar-baz.com 通信,从而导致对该域的请求返回如下内容:
[RequestError: Error: certificate has expired]

显然,如何在 java 中解决此问题是将https://foo-bar-baz.comcertificate 添加到$JAVA_HOME/lib/security/cacerts

节点是否从提到的硬编码列表中读取证书?或者它也可以从一些操作系统证书存储中读取? 如果只是来自硬编码列表:

  1. 为什么?以这种方式实施它的原因是什么?
  2. 如果某些证书被伪造,只能等待下一个节点版本?
  3. 如果要添加自签名证书,不可能吗?

(可以编辑可能的硬编码列表以添加/删除证书,但我对更改节点源感到不舒服,同样来自类似问题Where is node's certificate store? 可以在请求时添加证书,但它不在范围内这个问题。类似的问题是在2年前发布的,从我今天调查的情况来看,情况是一样的)

【问题讨论】:

  • 看来Node只是使用系统证书存储。
  • Google 上的各种来源
  • 哪些来源?链接?我测试了在superuser.com/questions/437330/… 之后添加证书并验证证书已成功添加但节点忽略它
  • 我不知道该告诉你什么。节点应将任何本地受信任证书识别为已验证。如果不是,请尝试重新启动等等。

标签: javascript node.js ssl https


【解决方案1】:

您称它们为硬编码的“证书列表”...该列表是证书授予机构,而不是证书...当前行为是出于充分的理由故意...如果 Web 服务器(nodejs ) 为未经验证的玩具自签名证书呈现绿色挂锁

我建议您使用更好的技术来合成您的证书,这将为您提供启用绿色挂锁的有效证书...

运行本教程以获得您的域的有效证书(免费),这些证书已准备好生产......还有用于踢轮胎的 gr8:https://letsecure.me/secure-web-deployment-with-lets-encrypt-and-nginx/

【讨论】:

  • 关于列表,但它们又是属于证书颁发机构 (CA) 本身的certificates(如果是 root,则由他们自己进行数字签名)对吗?其次,当然,在生产环境中为未经验证的自签名证书渲染绿色挂锁会很糟糕,但是如果你说的那样完全被禁止或者强烈不推荐它,可以再次讨论它。无论如何,有许多网站在自签名证书上运行。我不能接受你的回答的原因是我没有问如何获得有效的证书
猜你喜欢
  • 2014-01-27
  • 2011-01-01
  • 2020-12-15
  • 2020-06-12
  • 2017-10-27
  • 2021-08-21
  • 2017-03-17
  • 2017-11-24
  • 2012-10-25
相关资源
最近更新 更多