Minica
Minica 是一个由 Go 语言编写的超轻量级私有 CA 工具,主打“零配置、单二进制”,非常适合在本地开发、内网测试环境或微服务间快速生成 TLS 证书。它不提供 OCSP 或 CRL 吊销功能,设计理念是 CA 操作者同时管理所有使用该证书的主机。
安装方式
- Go 命令安装(推荐,需 Go 1.15+):
go install github.com/jsha/minica@latest - macOS Homebrew:
brew install minica - 源码编译:
git clone https://github.com/jsha/minica.git cd minica && go build
核心运行机制
- 自动生成根 CA:首次在目录下运行
minica命令时,会自动在当前目录生成minica-key.pem(根私钥)和minica.pem(根证书),后续签发会自动复用该根 CA,除非你手动删掉这两个文件。 - 按域名建目录:每签发一个(或一组)证书,会在当前目录创建一个以第一个域名/IP 命名的文件夹,里面存放该服务的
key.pem(私钥)和cert.pem(证书)。 - 有效期规则:根证书有效期 100 年,终端(叶)证书默认有效期 2 年零 30 天。
- 安全策略:不会覆盖已存在的密钥/证书文件,且生成的密钥文件权限默认为
0600(仅所有者读写)。
常用命令实战
minica --domains myapp.local
./minica.pem # 根证书(需导入系统/浏览器信任区)
./minica-key.pem # 根私钥
./myapp.local/ # 以域名命名的目录
├── cert.pem # 服务端证书
└── key.pem # 服务端私钥minica --domains "*.example.com,api.example.com"minica --ip-addresses "192.168.1.100,10.0.0.5"指定加密算法:默认使用 ECDSA P-384,也可强制指定 RSA:
minica --domains test.local --ca-alg rsa配置 Nginx HTTPS
生成证书后,在 Nginx 配置中指向对应文件即可:
server {
listen 443 ssl;
server_name myapp.local;
ssl_certificate /path/to/myapp.local/cert.pem;
ssl_certificate_key /path/to/myapp.local/key.pem;
# 信任链:需要把 minica.pem 内容追加到 cert.pem 后面,或直接配置信任
}
评论已关闭