Next.js 本地 HTTPS + 自定义域名无法访问问题排查(Windows / mkcert / HSTS 完整指南)

在本地开发 Next.js 项目时,我们常常会配置自定义域名,例如:

复制代码
dev.local-app.test

并通过 Next.js 实验性 HTTPS 功能启动:

复制代码
"dev": "next dev --experimental-https -p 7777 -H dev.local-app.test"

但一个非常常见的问题是:


问题现象

✔ hosts 已配置:

复制代码
127.0.0.1 dev.local-app.test

✔ ping 正常:

复制代码
ping dev.local-app.test → 127.0.0.1

✔ Next.js 正常启动:

复制代码
Local: https://dev.local-app.test:7777

✔ 以下地址正常:

复制代码
https://127.0.0.1:7777
https://localhost:7777

❌ 自定义域名 HTTPS 失败:

复制代码
https://dev.local-app.test:7777
网络连接异常 / 网站服务器失去响应

关键验证步骤:curl

复制代码
curl -k https://dev.local-app.test:7777

返回正常内容:

bash 复制代码
/

✔ 返回正常内容 →

服务器没问题

Next.js 没问题

hosts 没问题

问题锁定:浏览器 HTTPS 校验


根因分析

Next.js 的:

复制代码
--experimental-https

内部使用的是:

mkcert 自签名证书

mkcert 机制:

✔ 自动生成本地证书

✔ 自动生成 Root CA

❌ 浏览器默认不信任



前置知识:mkcert 是什么?

mkcert 是一个本地开发专用工具,用于:

✔ 生成可信任的本地 HTTPS 证书

✔ 自动创建本地 Root CA

✔ 解决自签名证书不被浏览器信任问题

Next.js 实验性 HTTPS 本质上依赖 mkcert。


Windows 下 mkcert 未安装时的安装指南

如果执行:

复制代码
mkcert

提示:

复制代码
'mkcert' 不是内部或外部命令

说明 mkcert 尚未安装。


① 下载 mkcert

官方地址:

https://github.com/FiloSottile/mkcert

进入 Releases

下载:

复制代码
mkcert-vX.X.X-windows-amd64.exe

② 重命名(推荐)

将文件改名为:

复制代码
mkcert.exe

③ 放入 PATH 目录(推荐做法)

例如:

复制代码
C:\Windows\System32

复制代码
C:\Tools\mkcert\

若使用自定义目录:

需要加入 PATH


④ 添加 PATH(如需要)

系统环境变量 → PATH → 新增:

复制代码
C:\Tools\mkcert\

重启终端。


⑤ 验证安装

复制代码
mkcert -version

✔ 显示版本号 → 安装成功


安装 Root CA(核心步骤)

复制代码
mkcert -install

成功标志:

复制代码
The local CA is now installed in the system trust store! 👍

非常重要:完全关闭浏览器

✔ 刷新无效

✔ 必须彻底关闭 Chrome / Edge


为什么 localhost 可以访问?

浏览器对白名单地址特殊处理:

✔ localhost

✔ 127.0.0.1

自定义域名没有这个待遇。


Windows 下 mkcert "已安装但仍无效" 排坑指南


① 检查 Root CA 是否真的安装

Win + R →

复制代码
certmgr.msc

查看:

复制代码
Trusted Root Certification Authorities

应存在:

复制代码
mkcert development CA

② 清除 Chrome HSTS(非常常见)

复制代码
chrome://net-internals/#hsts

Delete domain:

复制代码
dev.local-app.test

③ 删除旧证书缓存(Next.js 高频坑)

删除:

复制代码
/certificates

重启 Next dev。


④ hosts 文件建议写法

推荐分行:

复制代码
127.0.0.1 dev.local-app.test
127.0.0.1 localhost

⑤ 确认 Next 监听 Host

启动日志应显示:

复制代码
Local: https://dev.local-app.test:7777

排查逻辑总结(实战通用)

当遇到:

✔ localhost 正常

✔ IP 正常

✔ 自定义域名 HTTPS 失败

优先级:


复制代码
curl -k
mkcert -install
certmgr.msc
清除 HSTS
删除 certificates

本质理解(重点)

问题并不是:

❌ Next.js

❌ 域名解析

❌ hosts

而是:

浏览器 TLS 信任机制

HTTPS 是否可用取决于:

✔ Root CA 是否信任

✔ 证书域名是否匹配

✔ HSTS 是否强制策略

✔ 浏览器缓存状态


推荐长期稳定方案

✔ mkcert 手动统一证书

✔ 多域名共享证书

✔ turborepo / 多项目统一 HTTPS

避免:

❌ HTTPS 随机失效

❌ 证书重复生成

❌ 浏览器策略冲突


结论

在 Next.js 本地 HTTPS 场景中:

绝大多数自定义域名访问失败 = mkcert / 浏览器信任问题

牢记三板斧:

复制代码
curl -k
mkcert -install
清除 HSTS

即可快速定位问题。

相关推荐
神奇小梵13 分钟前
安全和开发的需要了解的知识————下载内容的安全,和下载内容如何运行
android·windows·安全·个人开发
2501_9159090616 分钟前
iOS 证书创建与管理 类型限制 p12 密码与云备份实操
android·ios·小程序·https·uni-app·iphone·webview
zhangfeng11331 小时前
Windows AMD显卡跑PyTorch
人工智能·pytorch·windows
楷哥爱开发1 小时前
如何在 Windows、macOS 和 Linux 上安装 scikit-learn (sklearn)
linux·windows·macos
2603_965148111 小时前
eBay商品数据API:寻找海外仓与价格洼地
大数据·人工智能·windows·python·microsoft
江畔柳前堤10 小时前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
天天进步201515 小时前
UI-TARS 源码解析 #22:二次开发实战:用 UI-TARS 做一个简单的 Windows 自动操作 Agent
windows·ui
啊哈一半醒15 小时前
Windows 虚拟机搭建 CentOS 全过程(2026 最新版 + 踩坑解决)
linux·windows·centos
new_zhou16 小时前
C++ 项目 AI 协作指南(Windows / MSVC 环境)
c++·人工智能·windows
爬楼的猪19 小时前
跟着AI Agent学powershell
windows·ai编程