导读:mkcert是一个零配置工具,用于生成本地开发所需的、由本地CA签署的SSL/TLS证书。它支持多域名和IP地址(包括通配符),跨平台运行,并符合现代安全标准。安装后,用户可以通过命令行快速生成证书,并在项目中使用这些证书来实现HTTPS连接。mkcert仅适用于本地开发环境,不可用于生产环境。
# mkcert:生成本地受信任的 SSL/TLS 证书工具
## 概述
mkcert 是一个零配置的工具,用于生成本地开发所需的、由本地 CA 签署的 SSL/TLS 证书。它解决了浏览器和操作系统默认不信任自签名证书的问题,让本地开发环境能够使用 HTTPS。
---
## 特性
- ✅ **自动创建本地 CA**(首次运行时)
- ✅ **支持多域名/IP**(包括通配符)
- ✅ **跨平台支持**(Windows/macOS/Linux)
- ✅ **符合现代安全标准**(RSA-2048/4096,ECDSA)
- 🔒 **完全本地运行**(无需上传任何信息到服务器)
---
## 快速开始
### 1. 安装
```bash
# Linux (Debian/Ubuntu)
sudo apt install libnss3-tools
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64.tar.gz
tar -xzf mkcert-v1.4.4-linux-amd64.tar.gz
sudo mv mkcert /usr/local/bin/
# macOS
brew install mkcert
# Windows
choco install mkcert
# 或手动下载 https://github.com/FiloSottile/mkcert/releases
2. 生成根证书
mkcert -install
这会创建一个本地 CA 并自动安装到系统信任存储中
3. 生成证书
# 单域名示例
mkcert example.com
# 多域名 + IP 示例
mkcert "*.example.com" example.com 127.0.0.1 ::1
# 自定义输出路径
mkcert -key-file key.pem -cert-file cert.pem localhost
高级用法
自定义 CA
# 使用已有的 CA 密钥
mkcert -ca-cert ca.crt -ca-key ca.key example.com
# 指定密码保护的私钥
mkcert -passphrase-protected example.com
批量生成
# 通过文件列表生成
cat domains.txt | xargs mkcert
# 为整个目录生成证书
for domain in $(ls sites); do
mkcert $domain
done
在项目中使用
Nginx 示例
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/_wildcard.example.com.crt;
ssl_certificate_key /path/to/_wildcard.example.com-key.pem;
# ...其他配置...
}
Node.js 示例
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('./key.pem'),
cert: fs.readFileSync('./cert.pem')
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('Hello from HTTPS!');
}).listen(443);
常见问题
Q: 为什么浏览器仍显示不安全?
- 检查是否执行过
mkcert -install - 确认证书链完整(包含中间证书)
- 某些系统需要重启才能识别新 CA
Q: 生产环境能用吗?
❌ 不可以。mkcert 仅适用于本地开发环境,生产环境应使用 Let's Encrypt 等正式 CA。
Q: 如何吊销证书?
删除对应的 .pem 文件即可,CA 会自动处理后续验证。
注意事项
- 不要在生产环境使用
- 定期更新本地 CA(
mkcert -upgrade) - 生成的证书绑定特定主机名,不可直接复制到其他设备
- 通配符证书只能匹配一级子域(如 *.example.com)
相关链接
- GitHub 仓库
- 官方文档
- SSL/TLS 最佳实践
关键词: mkcert
生成
本地
受信任
SSL/TLS
证书
苏公网安备 32111202000338号