使用 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个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP