我正在向具有自签名证书的服务器发出https请求(使用请求模块).如果我没有指定strictSSL: false
选项,则会抛出错误.
此证书已在我的操作系统(OSX)上受到信任,因此Chrome在从该服务器访问网页时不会出错.
我了解不同的应用程序/环境可能有自己的证书库.Firefox有自己的,例如,JVM通常位于$ JAVA_HOME/jre/lib/security/cacerts(在OSX上).
我的问题是,节点在哪里寻找其可信任的CA?有这样的概念吗?我想在那里添加我自签名的证书以用于开发目的.
似乎虽然没有商店,但是内置了一个CA的默认列表.
我的搜索最终导致我最接近商店,这个节点.js支持的CA文件:
https://github.com/joyent/node/blob/master/src/node_root_certs.h
因此,虽然它确实没有对系统托管的CA进行查找,并且本身没有"存储",但它接受的是CA的默认列表.
正如@Joe和@damphat所提到的,你可以使用Agent.options.ca属性添加自己的属性,不幸的是,在我的情况下,解决方法不实用.