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

Node.js 16.15.0配置仅启用TLS 1.3失败及后续问题求助

解决Node.js应用强制使用TLS 1.3的问题

问题分析

  1. 设置minVersion: 'TLSv1.3'报错,核心原因是系统依赖的OpenSSL版本不支持TLS 1.3——Node.js 16.x虽官方支持TLS 1.3,但需要底层OpenSSL版本≥1.1.1(TLS 1.3是在OpenSSL 1.1.1中正式引入的)。如果系统OpenSSL版本低于该要求,即使Node.js版本达标,也会识别不了'TLSv1.3'这个版本值。
  2. 使用tls.DEFAULT_MAX_VERSION后仍用TLS 1.2,是因为Node.js 16.x中这个默认值就是'TLSv1.2',必须手动指定版本才能切换到TLS 1.3。

解决步骤

  • 第一步:检查系统OpenSSL版本
    执行终端命令:

    openssl version
    

    确保输出版本号≥OpenSSL 1.1.1。如果版本过低,需要升级系统OpenSSL,或重新编译Node.js绑定高版本OpenSSL。

  • 第二步:修正代码配置
    确保TLS版本参数正确,同时修正服务启动的变量名笔误(你代码中创建的是httpsServer,但最后启动的是httpServer):

    var options = {
      key: key,
      cert: cert,
      ca: ca,
      passphrase: passphrase,
      requestCert: true,
      rejectUnauthorized: false,
      minVersion: 'TLSv1.3',
      maxVersion: 'TLSv1.3'
    }
    
    var httpsServer = https.createServer(options, app);
    httpsServer.listen(8443); // 使用创建好的httpsServer启动服务
    
  • 第三步:验证TLS 1.3连接
    用终端命令测试是否成功启用:

    # 使用curl测试
    curl -v --tlsv1.3 https://your-domain:8443
    # 或用openssl测试
    openssl s_client -connect your-domain:8443 -tls1_3
    

    如果连接成功,终端会显示TLSv1.3相关的握手信息;浏览器端也会在安全面板显示TLS 1.3。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:33:22