You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将TypeScript搭建的Node.js Express服务从HTTP改为HTTPS并保障安全

HTTPS配置方案及服务安全加固建议

1. HTTPS配置步骤

1.1 安装依赖

如果TypeScript项目中缺少Node核心模块类型定义,先安装类型依赖:
npm install @types/node --save-dev

1.2 修改app.ts配置

替换原HTTP监听逻辑为HTTPS,完整代码如下:

import dotenv from 'dotenv';
import express from 'express';
import https from 'https';
import fs from 'fs';
import path from 'path';
import MasterRouter from './routers/MasterRouter';

// 加载环境变量
dotenv.config({
  path: '.env'
});

class Server {
    public app = express();
    public router = MasterRouter;
}

const server = new Server();

// 全局中间件可在此处注册,比如后面提到的helmet、请求解析等
server.app.use(express.json({ limit: '10mb' }));
server.app.use('/api', server.router);

// 读取SSL证书配置,路径替换为你实际存放cert.pem、key.pem的路径
const sslOptions = {
  key: fs.readFileSync(path.resolve(__dirname, './certs/key.pem')),
  cert: fs.readFileSync(path.resolve(__dirname, './certs/cert.pem')),
  // 若证书有访问密码,新增配置:passphrase: process.env.SSL_KEY_PASS
  minVersion: 'TLSv1.2', // 禁用老旧不安全的TLS1.0、TLS1.1版本
  ciphers: 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384'
};

// 启动HTTPS服务,HTTPS默认端口为443,本地测试可自定义为其他端口
((port = process.env.APP_PORT || 443) => {
  https.createServer(sslOptions, server.app).listen(port, () => console.log(`> HTTPS服务已启动,监听端口:${port}`));
})();

2. 服务安全加固建议

  • 证书安全:将证书存放目录、.env文件加入.gitignore,禁止提交到代码仓库;生产环境使用受信任CA机构颁发的SSL证书,自签名证书仅可用于本地测试。
  • 安全头配置:安装helmet中间件,在路由注册前添加server.app.use(helmet()),自动配置各类安全响应头,防范XSS、点击劫持、嗅探攻击等常见风险。
  • 请求管控:安装express-rate-limit中间件配置接口请求频率阈值,避免被暴力破解或CC攻击;严格限制请求体大小,避免大流量恶意请求耗尽服务资源。
  • 协议兼容:如需兼容HTTP访问,可额外启动一个监听80端口的HTTP服务,所有请求返回301永久重定向到对应HTTPS地址,确保用户访问始终走加密协议。
  • 部署优化:生产环境先将TS代码编译为JS再启动,不要直接用ts-node运行;关闭express debug模式,配置全局错误处理中间件,禁止将服务错误栈、内部路径等敏感信息返回给客户端。高流量场景建议前端添加Nginx反向代理,将HTTPS卸载配置在Nginx层,性能优于Node.js原生处理。

内容的提问来源于stack exchange,提问作者Antoine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:27:01