我想通过HTTPS连接到Node.js作为客户端的内部企业服务器。 如何将我的内部根证书安装到Node.js,以便证书验证成功?
我不想禁用证书验证。
答案 0 :(得分:7)
我解决了这个问题。
使用它,它可以作为魅力:https://github.com/coolaj86/node-ssl-root-cas
如果您使用Sails.js,请将代码放入config / bootstrap.js
答案 1 :(得分:0)
添加一个environment variable:
NODE_EXTRA_CA_CERTS=file
设置后,众所周知的“根” CA(如VeriSign)将使用文件中的其他证书进行扩展。该文件应包含一个或多个PEM格式的受信任证书。如果文件丢失或格式错误,则将(一次)通过process.emitWarning()发出一条消息,但否则将忽略任何错误。
请注意,当为TLS或HTTPS客户端或服务器明确指定ca options属性时,既不会使用众所周知的证书,也不会使用额外的证书。
当节点以setuid根身份运行或设置了Linux文件功能时,将忽略此环境变量。
答案 2 :(得分:0)
希望这可以帮助某人:
var https = require('https');
var fs = require('fs');
var https_options = {
key: fs.readFileSync("/path/to/private.key"),
cert: fs.readFileSync("/path/to/your_domain_name.crt"),
ca: [
fs.readFileSync('path/to/CA_root.crt'),
fs.readFileSync('path/to/ca_bundle_certificate.crt')
]
};
参考:https://cheapsslsecurity.com/blog/how-to-install-ssl-certificate-on-node-js/
您可以使用此链接来检查您的证书: https://www.digicert.com/help/