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" \`\`\` \`\`\`shell 指定加密算法:默认使用 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 后面,或直接配置信任 } \`\`\`