mkcert 简介
mkcert 是一款免费开源的命令行工具,用于为开发环境生成本地受信任的 HTTPS 证书。只需运行一次 mkcert -install,它就会创建你自己的本地证书颁发机构并添加到 Mac 的信任存储中;之后一条命令就能为 localhost、127.0.0.1 或 example.test 之类的开发域名生成证书,浏览器会直接信任,不再弹出警告。mkcert 由 Filippo Valsorda 开发,以 BSD-3-Clause 许可证发布。
真正的证书颁发机构无法为 localhost 这类名称签发证书,而自签名证书在所有浏览器中都会出现信任错误。mkcert 无需任何配置就能同时解决这两个问题。它不会替你配置 Web 服务器:你需要让服务器使用它生成的证书和密钥文件。在 Mac 上可以用 Homebrew 或 MacPorts 安装;如果使用 Firefox,还需要安装 nss 包。最新版本 1.4.4 发布于 2022 年,提供 Apple 芯片和 Intel 版本。
主要功能
mkcert 只做一件事,而且做得简单。
- 本地证书颁发机构:mkcert -install 会创建本地 CA,并把它添加到 macOS 的系统信任存储中。
- 任意名称:一张证书可以涵盖多个名称、*.example.test 这样的通配符、localhost 和 IP 地址。
- 浏览器信任:适用于 Safari、Chrome、Chromium 和 Firefox(需要 nss),设置了 JAVA_HOME 时也适用于 Java。
- 无需配置:没有设置文件,也没有任何提问。
- 证书格式:用 -ecdsa 生成 ECDSA 密钥,用 -pkcs12 生成 PKCS #12 文件,用 -client 生成客户端证书。
- S/MIME:如果名称是电子邮件地址,会生成 S/MIME 证书。
- 其他设备:从 mkcert -CAROOT 显示的文件夹中复制根证书,就能让手机或其他电脑也信任它。
- 干净移除:mkcert -uninstall 会把本地 CA 从信任存储中移除。
1.4.4 版本新功能
mkcert 1.4.4 是最新版本。
- 支持以 Snap 打包的 Firefox,即 Ubuntu 22.04 的默认浏览器
- 修复证书签名请求中没有名称时崩溃的问题
- 不带参数运行 mkcert 时现在只显示帮助信息
- 提供适用于 Arm 版 Windows 和 Apple 芯片 Mac 的预编译程序
- 预编译程序改用固定的下载地址
mkcert 常见问题
mkcert 免费吗?
是的。mkcert 免费且开源,以 BSD-3-Clause 许可证发布。
如何在 Mac 上安装 mkcert?
如果使用 Homebrew,在“终端”中运行 brew install mkcert;如果使用 Firefox,再运行 brew install nss。也可以通过 MacPorts 安装,GitHub 发布页面上还有预编译程序。
如何用 mkcert 为 localhost 生成证书?
先运行一次 mkcert -install,创建并信任你的本地证书颁发机构。然后运行 mkcert localhost 127.0.0.1 ::1,mkcert 会在当前文件夹中写入证书文件和密钥文件,供开发服务器使用。
为什么不直接用自签名证书?
浏览器不信任自签名证书,会显示安全警告。mkcert 用你自己的本地证书颁发机构签署证书,并把该机构添加到 Mac 的信任存储中,因此浏览器会直接接受这些证书。
mkcert 支持 Firefox 吗?
支持。在 Mac 上,先安装 nss 包(brew install nss),再运行 mkcert -install,mkcert 就会把证书颁发机构也添加到 Firefox 中。之后需要重启 Firefox。
mkcert 安全吗?
mkcert 只适用于开发环境。它生成的 rootCA-key.pem 文件可用来拦截你电脑上的安全连接,所以绝不要分享它,也绝不要在公共服务器上使用 mkcert 证书。
mkcert 会配置我的 Web 服务器吗?
不会。mkcert 只生成证书和密钥文件,你需要自己配置 Web 服务器或开发工具来使用它们。
可以在 iPhone 或其他电脑上使用 mkcert 证书吗?
可以,只要在那台设备上安装你的本地根证书。它就是 mkcert -CAROOT 显示的文件夹中的 rootCA.pem 文件。
如何移除 mkcert 的证书颁发机构?
运行 mkcert -uninstall。它会把本地证书颁发机构从 Mac 的信任存储中移除。
mkcert.FULLMAC.app 上的 mkcert 下载来自哪里?
下载按钮指向 mkcert 的官方 GitHub 页面 https://github.com/FiloSottile/mkcert,那里有安装说明和各个版本。mkcert.FULLMAC.app 不会修改或重新打包该工具。
相似应用
OrbStackOrbStack 是在 Mac 上运行 Docker 容器和 Linux 虚拟机的快速、轻量又简单的方式。它可以直接替代 Docker Desktop:你的 docker 和 docker compose 命令照常可用,首次启动时 OrbStack 还会提出迁移 Docker Desktop 中的容器、镜像和卷。它几秒钟即可启动,在 Apple 芯片上的后台 CPU 占用低于 0.1%,并会把未使用的内存还给 macOS。除了容器,它还能运行来自 16 种发行版的完整 Linux 虚拟机,以及用于本地开发的轻量 Kubernetes 集群。OrbStack 由 Orbital Labs 开发。开发工具
QuotaBar如果你用 ChatGPT 账户使用 OpenAI Codex,用量限制会按 5 小时窗口和每周窗口重置,想知道还剩多少就得打开 Codex 或 ChatGPT。QuotaBar 把剩余百分比显示在 Mac 菜单栏中,每 60 秒刷新一次。点击图标可打开详细面板,查看每个限制窗口及其重置倒计时;也可以打开一个始终置顶的小型悬浮 HUD。开发工具
Stargazer BarStargazer Bar 是一款小巧的 Mac 原生菜单栏应用,帮你盯着 GitHub 仓库。它在菜单栏中实时显示星标数,不用一直开着浏览器标签页也能知道项目的情况;点击即可打开详情菜单:星标与 Fork 趋势图、发布版下载总数以及维护者雷达。公开仓库以星标数衡量。私有仓库没有星标,则以需要你处理的事项衡量:构建失败、未回复的 Issue 或新的拉取请求。开发工具
Notch So GoodNotch So Good 把 MacBook 的刘海变成 AI 编程代理的小型状态显示屏。当 Claude Code 或 OpenAI Codex CLI 工作时,一个黑色胶囊会延伸刘海:左边是名为 Peek 的 3D 角色,右边的圆环显示 5 小时用量窗口还剩多少。会话越需要你,Peek 就从刘海里探出得越多。当任务完成、失败或达到用量上限时,刘海会展开成一张卡片,说明发生了什么、在哪个项目里,点击即可跳到对应的终端标签页,包括 tmux 窗格。开发工具
Claude UsageClaude Usage 是一款为 Claude Code 用户打造的小巧原生应用。它在菜单栏中显示当前的 5 小时会话、所有模型和 Sonnet 的每周用量,以及按量付费的额度,每项都带有用量条和重置时间,无需打开 Claude Code。它还会在 Claude Code 提示符下方添加一行,显示模型、上下文窗口的占用比例和已用令牌数,让你在空间耗尽之前压缩会话。每个终端窗格都显示自己的这一行,在 tmux 中也一样。开发工具
TintpadTintpad 是一款免费开源的启动器,面向使用 Claude Code、Codex 等命令行编程代理的开发者。在任意位置按下 Option-Command-空格,一滴黑色的“水滴”会从 Mac 的刘海处落下(没有刘海的 Mac 则悬挂在菜单栏下方),里面列出你的代码仓库。输入几个字母并按下 Return,你自己的终端就会在该仓库中打开,代理已按你上次在那里使用的模式运行。开发工具
FULLMAC.app 不托管此应用。下载按钮会将你带到开发者自己的页面。