繁体   English   中英

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

[英]Disable TLS 1.0 & 1.1 OR only use TLS 1.2 and greater in Node.js Express

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

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

我有点困惑为什么我找不到任何关于此的文档。

通常你会在其他东西后面运行你的 Express 服务器,比如 Nginx 代理、AWS 负载均衡器或其他一些终止 TLS 的软件或硬件。 在您的示例中,您根本没有监听 HTTPS,您正在监听端口 3000 上的 HTTP 连接。配置通常在 Node 应用程序之外完成,但如果您确实想在 Node 应用程序中进行,它会是这样的:

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

const opts = {
  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(opts, app).listen(3443) 

前任。

const https = require("https");
const https_options = {
  pfx: fs.readFileSync(path.join(__dirname, "../ssl/cert.pfx")), 
  passphrase: "password",
  minVersion: "TLSv1.2"
}

server = https.createServer(https_options, app);

如此处所述,minVersion 是完成此操作的最简单方法: https://stackoverflow.com/a/62051684/4487632

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM