首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在Node.js / express.js中限制TLS消息的长度吗?

我可以在Node.js / express.js中限制TLS消息的长度吗?
EN

Stack Overflow用户
提问于 2018-01-25 16:49:04
回答 1查看 331关注 0票数 1

我有一个Node.js服务器在HTTPS上提供(相当大的)文件。当使用“正常”HTTPS客户端时,一切都按预期工作。但我的主要用例是将这些文件提供给嵌入式系统(大型文件是固件映像)。

嵌入式系统使用mbedTLS库创建到我的节点服务器的安全SSL/TLS连接,并发送一个HTTPS请求来下载文件。服务器忠实地使用HTTP中的文件作为八进制流进行应答。

代码语言:javascript
运行
复制
async function createServer({ port, keys, cert }) {
  const app = express()
  app.use('/', express.static('images'))

  https.createServer({ key: keys.privateKey, cert }, app).listen(port, '0.0.0.0')
}

问题:由于嵌入式系统内存有限,我的客户端的最大消息缓冲区大小为4096字节。但是服务器以更大的块(例如,每条消息16408字节)发送数据。给定小缓冲区,mbedTLS无法处理这些大型消息,并且拒绝对数据进行解密。

我能告诉Node限制它可以在一个TLS消息中发送的数据量吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-25 18:11:24

您是否尝试过像这样传递highWaterMark选项:

代码语言:javascript
运行
复制
function createServer({ port, keys, cert }) {
  const app = express()
  app.use('/', express.static('images', { highWaterMark: 1024 * 4 }))

  https.createServer({ key: keys.privateKey, cert }, app).listen(port, '0.0.0.0')
}

传递给express.static的选项将传递给内部创建的底层fs.createReadStream。看看fs.createReadStream 这里的官方文档。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48448069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档