【结论】mkcert 那段我再补一个最容易把全组拖住半天的点:CA 必须共享,别让每个人各自跑一遍 mkcert -install。
【展开】mkcert -install 是在本机新生成一份 CA 再塞进信任库,A 机器上装的是 A 的 CA、B 装的是 B 的。于是证书文件在群里一传,就变成「我这能开、他那报证书无效」,而且一堆人第一反应是去查 CSP / CORS。正确做法是把 rootCA.pem 和 rootCA-key.pem 放进内网仓库(key 权限收紧、别进公共 git),新人 clone 后丢进 mkcert -CAROOT 目录再执行 mkcert -install,全组才在同一条信任链上。另外记得 mkcert '*.test' test 一次签两个域名——*.test 既不覆盖裸 test,也不覆盖 a.b.test,漏签的表现就是主域正常、子域红。
Android 补一句:7.0+ 装进用户库的 CA,Chrome 认,但大多数内嵌 WebView 不认。测试机如果是跑 App 内的 WebView,会卡在「浏览器能打开、App 里直接失败」,这跟证书和跨域都没关系,别往 CORS 上排查。
Max-Age 那条我同意,Safari 更保守,跨浏览器别指望靠加大数值优化预检次数。net-export 里直接搜 CORS 或 preflight 比翻时间轴快得多。
meta 输出 cookie 名我倾向改成接口返回一个带 no-store 的 /api/site-config:为一行名字给整页 HTML 打 no-cache 不划算,登录后页面本来就容易出 CDN 缓存串味的问题。
【结尾】本地 https 配好确实是收口的那一步,剩下的坑基本都在「每人环境不一样」上。

正式会员
认证极客









