节点证书存储是否只读取硬编码证书列表中的节点?

在挣扎了一段时间后,有没有办法将新证书添加到证书节点信任列表中?

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

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

显然这是如何在Java中解决的是将$JAVA_HOME/lib/security/cacerts证书添加到$JAVA_HOME/lib/security/cacerts

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

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

(可以编辑可能的硬编码列表来添加/删除证书,但是我不会感觉更改节点源,也可以从类似的问题中得到解决scheme节点的证书存储在哪里?可以在请求时添加证书,但它不在这个问题。类似的问题是2年前发布的,从我调查的情况来看今天是一样的)

你打电话给他们硬编码的“证书列表”…这个列表是证书颁发机构,而不是证书…当前的行为是有意的,有很好的理由…如果一个web服务器(nodejs)呈现一个绿色挂锁未经validation的玩具自签名证书

我build议你使用更好的技术来综合你的证书,这将给你有效的证书,使绿色的挂锁…

通过这个教程来获得有效的证书(免费)为您的域是生产准备…也gr8踢轮胎: https : //letsecure.me/secure-web-deployment-with-lets-encrypt-and-nginx /