第 14 期 2026 年 8 月 广东

搜索
我的生活点滴

技术笔记与学习备忘

2026-07-02 工程实践 约 8 分钟 陈予安

本地 HTTPS 开发:mkcert 之外还要处理什么

证书装上以后,页面仍可能是半加密、Cookie 写不进去、手机打不开。这些不是 mkcert 的锅。

灰色工作台上的网线

证书和域名

我不用 localhost 的自签弹窗。本地用一个不会上线的名字,例如 notes.local.test,写进 hosts,再用 mkcert 签这个名字:

mkcert notes.local.test
mkcert -install

Nginx 或开发服务器指向生成的 pem。浏览器信任的是本机 CA,换一台电脑要重新 install。

不要把开发 CA 的私钥提交到仓库。我放在 ~/.local/share/mkcert,目录权限只有自己可读。

一旦页面是 HTTPS,脚本、图片、接口如果仍是 HTTP,浏览器会拦混合内容。接口报错看起来像 CORS,其实是协议不一致。开发环境把 API 也放到同一证书下,用反代转发到后端端口。

Secure 的 Cookie 在 HTTP 下不会存。本地如果有时开 HTTPS、有时开 HTTP,登录状态会“丢”。固定一条协议,少切换。

局域网设备

手机要访问电脑上的站点,证书里还要包含局域网 IP 或另一条域名。mkcert 可以一次签多个名字。手机不会自动信任你电脑上的 CA,需要把 root CA 装到设备上,这一步在 iOS 上尤其麻烦。

更省事的做法:开发时仍用电脑浏览器的设备模式看布局,真机联调再走一台带正规证书的预发环境。

项目主页:mkcert