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

Next.js(PM2+Nginx部署)遇ERR_TLS_CERT_ALTNAME_INVALID错误如何解决?

解决Error [ERR_TLS_CERT_ALTNAME_INVALID]:主机名与证书备用名称不匹配问题

根本原因

当前scimagine.com域名使用的SSL证书仅包含auth.scimagine.com子域,Node.js/浏览器会严格验证主机名与证书的备用名称(altnames)是否一致,不匹配时就会触发该错误。

解决方案

1. 为scimagine.com生成正确的SSL证书

  • 若使用Let's Encrypt等工具,重新生成包含scimagine.com及所需子域的证书,确保证书备用名称包含DNS:scimagine.com和DNS:auth.scimagine.com。
  • 更新Nginx配置中ssl_certificate和ssl_certificate_key的路径,指向新证书文件。
  • 验证Nginx配置语法:sudo nginx -t,无问题后重启服务:sudo systemctl restart nginx

2. 检查Nginx配置是否误用子域证书

  • 打开scimagine.com对应的Nginx配置文件(通常在/etc/nginx/sites-available/或/etc/nginx/conf.d/目录)。
  • 确认配置中的ssl_certificate和ssl_certificate_key未指向auth.scimagine.com的证书,而是对应scimagine.com的有效证书。
  • 检查SSL跳转、反向代理等区块,确保所有涉及scimagine.com的配置都使用正确证书。
  • 验证配置并重启Nginx:sudo nginx -t && sudo systemctl restart nginx

3. 临时跳过证书验证(仅测试环境使用)

  • 生产环境绝对禁止,仅用于本地测试:
    • 在Next.js请求代码中添加证书验证跳过:
      const https = require('https');
      const agent = new https.Agent({ rejectUnauthorized: false });
      // 请求时使用该agent
      fetch('https://scimagine.com/api/xxx', { agent });
      
    • 或通过PM2启动时设置环境变量:
      NODE_TLS_REJECT_UNAUTHORIZED=0 pm2 start your-nextjs-entry-file.js
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:04:59