当前位置: 首页 > 面试题库 >

节点的证书存储在哪里?

张英范
2023-03-14
问题内容

我正在使用自签名证书向服务器发出https请求(使用请求模块)。如果我未指定strictSSL: false为选项,则会引发错误。

我的OS(OSX)已信任此证书,因此Chrome从该服务器访问网页时不会引发错误。

我了解不同的应用程序/环境可能具有自己的证书存储。Firefox拥有自己的操作系统,例如,JVM通常位于$ JAVA_HOME / jre / lib /
security / cacerts(在OSX上)。

我的问题是,节点在哪里寻找其受信任的CA?有这样的概念吗?我想在此处添加我的自签名证书以用于开发。


问题答案:

没有商店。您可以将ca选项传递给https请求,以告诉它您信任哪些CA。

从文档:

tls.connect()也可以指定以下选项。但是,globalAgent无声地忽略了这些。

  • ca:用于检查远程主机的授权证书或授权证书阵列。

为了指定这些选项,请使用custom Agent

var options = {
  ...
  ca: CA or [array of CAs]
  ...
};

options.agent = new https.Agent(options);

var req = https.request(options, function(res) {

参考:http
:
//nodejs.org/api/https.html#https_https_request_options_callback



 类似资料:
  • 我想写一些可以枚举和使用(签名)证书在货币用户/我和LocalMachine/我,但我还没有能够找到任何Windows证书存储,只有Java自己的秘密存储。这个链接看起来很有希望,但我只能使用Java。 我以前在SO上发现过这个问题,但这是五年前的问题,在计算机时代是很长的时间了。谢谢!

  • null 有什么想法吗?我一筹莫展...任何帮助都将不胜感激。

  • 我已经尝试了各种方法,通过导入一个基于BouncyCastle的X509Certificate实例和相关的私钥(RsaPrivateCrtKeyParameters)。NET X509Certificate2一个RSACryptServiceProvider实例,并将其保存到证书存储区(NET的X509Store,My/CurrentUser)。 在证书存储MMC管理单元中,似乎有一个与证书相关联

  • 在证书链验证期间,我需要将自定义的自签名根证书标记为受信任的,总的来说,我希望尽可能依赖系统API。 我创建了一个临时内存存储。 然后我将自定义根证书放入存储中。 CertGet证书链MSDN留档表示 HadAdditional存储任何附加存储的句柄,以搜索支持证书和证书信任列表(CTL)。 据我所知,如果我用根证书创建一个CTL并将其放置到存储中,CertGet证书链将信任它。因此,我在分配的缓

  • 我遇到了一个奇怪的问题——供应商使用TLS SSLv3,同时使用自签名客户端和服务器证书。Java1.5和Java1.6没有这个问题——只需将客户端证书和私钥导入密钥库,将服务器公共证书导入信任库。一切都很好。然而,在Java7中,服务器证书无法被信任,即使使用的是同一个信任库。我尝试过使用Java7 (1.7.03, 04和05、x86和x64版本)的视窗和红帽,但没有成功。 我从头开始重新创建

  • 我正在使用Mikeal的请求(https://github.com/mikeal/request)向服务器发出https请求。但是,我一直收到CERT_HAS_EXPIRED的授权错误。 我已经尝试将严格SSL设置为true和false,两者输出相同的CERT_HAS_EXPIRED错误。是什么导致了这个问题,有没有办法在nodejs中修复它?