【发布时间】:2014-07-07 21:59:09
【问题描述】:
我想通过 HTTPS 以 Node.js 作为客户端连接到内部公司服务器。 如何将我的内部根证书安装到 Node.js,使证书验证成功?
我不想禁用证书验证。
【问题讨论】:
标签: node.js ssl https certificate
我想通过 HTTPS 以 Node.js 作为客户端连接到内部公司服务器。 如何将我的内部根证书安装到 Node.js,使证书验证成功?
我不想禁用证书验证。
【问题讨论】:
标签: node.js ssl https certificate
我解决了这个问题。
使用它,它就像魅力一样:https://github.com/coolaj86/node-ssl-root-cas
如果你使用 Sails.js,请将代码放到 config/bootstrap.js
【讨论】:
NODE_EXTRA_CA_CERTS=file
设置后,众所周知的“根”CA(如 VeriSign)将使用文件中的额外证书进行扩展。该文件应包含一个或多个 PEM 格式的受信任证书。如果文件丢失或格式错误,将使用 process.emitWarning() 发出一条消息(一次),但任何错误都将被忽略。
请注意,当为 TLS 或 HTTPS 客户端或服务器显式指定 ca 选项属性时,既不会使用众所周知的证书,也不会使用额外的证书。
当节点以 setuid root 运行或设置了 Linux 文件功能时,将忽略此环境变量。
【讨论】:
希望这对某人有所帮助:
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/
【讨论】:
https.createServer(https_options, ... 不要忘记将一组选项传递给 createServer 构造函数/初始化程序。