Node.js中的SSL / TLS

示例

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

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

如果您的证书提供者需要证书颁发机构(CA)链,则可以将其ca作为数组添加到选项中。单个文件中包含多个条目的链必须拆分为多个文件,并以相同的顺序输入到数组中,因为Node.js当前不支持一个文件中包含多个ca条目。以下代码中提供了有关文件1_ca.crt和的示例2_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);