增强HTTPS的安全性

说明

日期:2026年3月10日

HTTP有多种密码套件;TLS 有多个版本,我们需要使用安全性最强的,禁止使用安全性弱的。

示例

操作系统:Alibaba Cloud Linux 3.2104 LTS 64位。

应用:node.js v22.15.1

javascript 复制代码
// 没有额外增强要求的HTTPS服务器创建方式
const https = require('https');

const PORT = Number(process.env.PORT || 12121);

function createServer() {
  const keyPath = process.env.SSL_KEY_PATH || '/home/ecs-user/ssl_certificate/privkey.pem';
  const certPath = process.env.SSL_CERT_PATH || '/home/ecs-user/ssl_certificate/fullchain.pem';
      const credentials = {
      key: fs.readFileSync(keyPath),
      cert: fs.readFileSync(certPath)
    };
  return https.createServer(credentials, app);
}

const server = createServer().listen(PORT, HOST, () => {
  const protocol = server instanceof https.Server ? 'https' : 'http';
  console.log(`${protocol.toUpperCase()} server successfully launched: ${protocol}://localhost:${PORT}`);
});

增加额外的安全要求

javascript 复制代码
const https = require('https');

const PORT = Number(process.env.PORT || 12121);

function createServer() {
  const keyPath = process.env.SSL_KEY_PATH || '/home/ecs-user/ssl_certificate/privkey.pem';
  const certPath = process.env.SSL_CERT_PATH || '/home/ecs-user/ssl_certificate/fullchain.pem';
      const credentials = {
      key: fs.readFileSync(keyPath),
      cert: fs.readFileSync(certPath),
      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',
      ].join(':'),
      ecdhCurve: 'secp384r1:prime256v1',
      minVersion: 'TLSv1.2',
      maxVersion: 'TLSv1.3',
      honorCipherOrder: true,
    };
  return https.createServer(credentials, app);
}

const server = createServer().listen(PORT, HOST, () => {
  const protocol = server instanceof https.Server ? 'https' : 'http';
  console.log(`${protocol.toUpperCase()} server successfully launched: ${protocol}://localhost:${PORT}`);
});

主要修改内容

  1. 弃用基于RSA的密钥交换

    • 配置中只保留了 ECDHE 和 DHE 密码套件,完全移除了 RSA 密钥交换
  2. 使用安全密码套件

    • 添加了经过安全审查的密码套件列表,包括:
      • 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
  3. 支持PFS(前向保密)

    • 配置了 ecdhCurve: 'secp384r1:prime256v1' 支持椭圆曲线密钥交换
    • 所有密码套件都使用 ECDHE 或 DHE 临时密钥交换,提供完全前向保密
  4. 其他安全增强

    • 限制 TLS 版本为 1.2 到 1.3(minVersion: 'TLSv1.2', maxVersion: 'TLSv1.3'
    • 启用 honorCipherOrder: true,确保服务器优先使用更强的密码套件

这些修改将显著提升web应用的TLS/SSL安全性。

相关推荐
KnowSafe1 天前
如何用OpenSSL生成CSR文件?
服务器·https·ssl
00后程序员张2 天前
HTTPS单向认证、双向认证、抓包原理与反抓包策略详解
网络协议·http·ios·小程序·https·uni-app·iphone
明豆3 天前
HTTPS / TLS 1.3 深度解析 — Web 安全传输协议生产实战
前端·安全·https
成空的梦想3 天前
免费 vs 付费国密 SSL 怎么选?
服务器·网络·网络协议·http·https·ssl
深邃-3 天前
【Web安全】-SRC平台介绍:CNVD平台-事件型漏洞-通用型漏洞,教育SRC平台,漏洞盒子,补天漏洞平台,企业SRC平台,企业和公益SRC平台
网络协议·安全·web安全·网络安全·https·src·cnvd
落叶_Jim4 天前
2026年Nginx配置HTTPS全流程-从零到自动续期实战指南
运维·nginx·https
Arman_4 天前
02 rusty-cat 实战:MeowClient 配置、任务参数、进度回调与暂停恢复
http·https·rust·tokio·文件分片上传·文件分片下载
xiaoxue..4 天前
HTTPS:更安全的HTTP,从加密原理、数字证书到TLS 握手全解析
网络协议·面试·https
Arman_4 天前
01 Rust 大文件断点上传下载入门:用 rusty-cat 让上传下载更可靠
http·https·rust·tokio·大量阅读·文件分片上传下载
仍然.5 天前
HTTPS
网络协议·http·https