使用证书颁发机构(CA)验证https请求。

问题描述 投票:0回答:1

我已经部署了多个微服务,包含前端应用和后端服务。

前端应用程序可以通过 xyz.com 域。它调用后台服务API端点。

所以,我真正想做的是使用Node.js中的Certificate Authority检查来自前台应用的请求是否有效,是否来自真实来源。

在研究了一下如何在node.js中做到这一点之后,我发现可以使用nodejs来实现。https 模块的 request 方法。但这种方法的问题是,nodejs维护了一个 CA证书清单这很容易过时,而且有可能验证我的域名证书的CA不在该列表中。虽然他们提供了一种方法来传递额外的CA,但还是要依赖用户端来维护这个列表。我目前对如何以正确的方式做这件事有点迷茫。

我需要帮助如何轻松有效地完成这个过程。

node.js httprequest subdomain certificate-authority
1个回答
0
投票

在node.js中,有两种方法可以验证一个域名。

https.request

Nodejs https模块的请求方法对所提供的域名进行验证。链条 证书颁发机构的根证书。下面给出一个代码示例。

var https = require('https');

var options = {
  hostname: 'github.com/',
  port: 443,
  path: '/',
  method: 'GET',
  rejectUnauthorized: true
};

var ss;
var req = https.request(options, function(res) {
  console.log("statusCode: ", res.statusCode);
  console.log("headers: ", res.headers);

});
req.end();

req.on('error', function(e) {
  console.error(e);
});

rejectUnauthorized: 这意味着,它将对服务器域名证书进行验证,并与之相对应。链条 的CA的根证书。

这种方法的唯一问题是,这种 链条 应定期更新,否则一个新的域名,由证书颁发机构签署的根证书不属于链的一部分,标记为无效证书(一个常见的例子是自签证书)。

ssl-validate模块

也可以使用,但需要另一个模块来获取域名信息。

© www.soinside.com 2019 - 2024. All rights reserved.