Node.js 中的 SSLTLS

如果你选择在 Node.js 应用程序中处理 SSL / TLS,请考虑此时你还负责维护 SSL / TLS 攻击防范。在许多服务器 - 客户端体系结构中,SSL / TLS 终止于反向代理,既降低了应用程序的复杂性,又减少了安全配置的范围。

如果你的 Node.js 应用程序应该处理 SSL / TLS,则可以通过加载密钥和证书文件来保护它。

如果证书提供程序需要证书颁发机构(CA)链,则可以将其作为数组添加到 ca 选项中。在单个文件中具有多个条目的链必须拆分为多个文件,并以相同的顺序输入到数组中,因为 Node.js 当前不支持一个文件中的多个 ca 条目。下面的代码中提供了一个示例文件 1_ca.crt2_ca.crt。如果 ca 阵列是必需的且未正确设置,则客户端浏览器可能会显示无法验证证书真实性的消息。

const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('privatekey.pem'),
  cert: fs.readFileSync('certificate.pem'),
  ca: [fs.readFileSync('1_ca.crt'), fs.readFileSync('2_ca.crt')]
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(8000);