经过一段时间的努力,有没有办法添加新的 证书节点信任列表的证书?
该节点似乎只信任仅存储在硬编码证书列表中的证书: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.com
证书添加到$JAVA_HOME/lib/security/cacerts
。
节点仅是否从提及的硬编码列表中读取证书?或者它也可以从一些OS证书商店读取? 如果只是来自硬编码列表:
(可以编辑可能的硬编码列表来添加/删除证书,但我对改变节点源感到不舒服,同样来自类似问题Where is node's certificate store?可以在执行请求时添加证书但是它不在这个问题的范围。类似的问题是在2年之前发布的,并且从我调查的情况来看今天是相同的)
答案 0 :(得分:3)
您正在将它们称为硬编码“证书列表”...列表是证书授予权限,而不是证书...当前行为是有意的,有充分理由......如果是Web服务器(nodejs)会非常糟糕)为未经验证的玩具自签名证书呈现绿色挂锁
我建议您使用更好的技术来合成您的证书,这将为您提供有效的证书,以启用Green Padlock ......
通过本教程获取适用于您的域的有效证书(免费),这些证书已准备就绪......还有gr8用于踢轮胎:https://letsecure.me/secure-web-deployment-with-lets-encrypt-and-nginx/