禁用TLS 1.0&;1.1或仅在Node.js Express中使用TLS 1.2及更高版本

禁用TLS 1.0&;1.1或仅在Node.js Express中使用TLS 1.2及更高版本,node.js,express,security,ssl,server,Node.js,Express,Security,Ssl,Server,如何在Node.js Express服务器上阻止TLS 1.0和TLS 1.1?我使用的是传统的服务器安装脚本: const app = express(); export const server = app.listen(3000); 我有点困惑,为什么我找不到任何关于这方面的文档。通常您会在其他东西后面运行Express server,比如Nginx代理、AWS负载平衡器或其他终止TLS的软件或硬件。在您的示例中,您根本没有通过HTTPS进行侦听,而是侦听端口3000上的HTTP连接。配

如何在Node.js Express服务器上阻止TLS 1.0和TLS 1.1?我使用的是传统的服务器安装脚本:

const app = express();
export const server = app.listen(3000);

我有点困惑,为什么我找不到任何关于这方面的文档。

通常您会在其他东西后面运行Express server,比如Nginx代理、AWS负载平衡器或其他终止TLS的软件或硬件。在您的示例中,您根本没有通过HTTPS进行侦听,而是侦听端口3000上的HTTP连接。配置通常在您的节点应用程序之外完成,但如果您确实希望在节点应用程序中完成,则如下所示:

const express = require('express')
const https = require('https')
const fs = require('fs')
const { options } = require('crypto')
const app = express()

const options = {
  key: fs.readFileSync('/path/to/key.pem'),
  cert: fs.readFileSync('/path/to/chain.pem'),
  secureOptions: constants.SSL_OP_NO_TLSv1 | constants.SSL_OP_NO_TLSv1_1,
}

// other app logic

// Or 443 if you run it as root, which is not recommended;
// instead you should proxy to it.
https.createServer(options, app).listen(3443) 

谢谢@Zac!您是否有任何文档表明,通过我们的负载平衡器阻止较低的TLS版本比直接在我们的节点应用程序上阻止更低的TLS版本更可取?这取决于您的环境以及您是否有法规遵从性需求,但以下是有关stackoverflow的一些相关问题:。但当然,如果您正在运行一个小型或低流量的应用程序,并且不想处理负载平衡器或反向代理,Node完全可以这样做,它只是不适合prod工作负载。太棒了,这非常有用!谢谢@Zac