使用 mkcert 生成自签名证书,实现局域网 HTTPS 安全访问
痛点说明
局域网设备(测试机、NAS、开发服务器)无法直接使用公共 SSL 证书,浏览器持续报「不安全」警告,严重影响开发测试效率和安全验证。
环境准备
- 操作系统:Windows 10/11
- 必备工具:mkcert(一款简单的自签名证书生成工具)
提示:mkcert 工具可通过其官方 GitHub 仓库下载:https://github.com/FiloSottile/mkcert
验证安装
安装完成后,打开 PowerShell 验证安装:
▼powershell复制代码# 验证安装 mkcert.exe --version > v1.4.4
四步实现局域网 HTTPS
步骤 1:安装本地信任根证书
以管理员身份运行 PowerShell,执行以下命令:
▼powershell复制代码# 安装本地信任根证书 mkcert.exe -install
✅ 作用:创建本地证书颁发机构(CA),将根证书注入系统信任库,消除浏览器警告。
步骤 2:生成服务器证书
替换为您的内网 IP 地址,执行以下命令:
▼powershell复制代码# 替换为您的内网IP mkcert.exe 192.168.1.100
✅ 生成文件:
- 192.168.1.100.pem - 证书文件
- 192.168.1.100-key.pem - 私钥文件
提示:如果需要为多个域名或 IP 生成证书,可以用逗号分隔,例如:
mkcert.exe 192.168.1.100 localhost litchi.local
步骤 3:配置 Nginx (示例)
将生成的证书文件复制到 Nginx 配置目录,修改 Nginx 配置文件:
▼nginx复制代码server { listen 443 ssl; server_name 192.168.1.100; ssl_certificate C:/certs/192.168.1.100.pem; ssl_certificate_key C:/certs/192.168.1.100-key.pem; # 基础 SSL 配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;'; ssl_prefer_server_ciphers on; location / { root html; index index.html; } }
步骤 4:其他设备信任证书
局域网内的其他设备需要信任我们创建的根证书才能消除警告:
▼powershell复制代码# 获取 CA 证书路径 mkcert.exe -CAROOT > C:/Users/YourUser/AppData/Local/mkcert
将此目录下的 rootCA.pem 重命名为 rootCA.crt 发送给其他设备,并按照以下步骤安装:
- Windows:双击
rootCA.crt→ 安装证书 → 选择「受信任的根证书颁发机构」
访问效果验证
访问 https://192.168.1.100:
- ✅ 浏览器显示绿色安全锁
- ✅ 无证书警告提示
工作原理总结
| 步骤 | 作用 | 跨设备同步 |
|---|---|---|
| mkcert -install | 创建本地CA并信任 | 仅需一次 |
| mkcert | 生成站点专用证书 | 每台服务器独立生成 |
| 分发 rootCA.pem | 信任局域网CA | 每台客户端需安装 |
通过此方案:
- 彻底解决局域网 HTTPS 警告问题
- 避免购买公网证书的开销
- 支持所有浏览器及移动设备访问
- 证书有效期长达 2 年(自动续期只需重新执行命令)
注:本方案仅适用于开发和测试环境,生产环境仍需使用正规 CA 机构证书。
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
