如何用 5 步实现本地 HTTPS 开发?mkcert + OpenResty 保姆级教程
引言:告别「不安全」警告
在本地开发中,你是否遇到过这些困扰?浏览器频繁提示「不安全连接」,微信小程序强制要求 HTTPS 接口,甚至某些前端 API 只能在加密环境下调用。
本文将手把手教你用 mkcert 生成可信证书,结合 OpenResty 搭建本地 HTTPS 服务,5 步解决开发环境的安全焦虑!
一、工具准备:1 分钟搭建基础设施
安装 mkcert
- Windows 用户可直接下载 ,Mac/Linux 用户通过包管理器安装:
1
2brew install mkcert # Mac
sudo apt install mkcert # Ubuntu - 初始化本地 CA 根证书: (系统会自动将 CA 证书加入信任列表,从此告别红色警告)
1
mkcert -install
- Windows 用户可直接下载 ,Mac/Linux 用户通过包管理器安装:
安装 OpenResty
访问下载安装包,或通过命令安装:1
2
3
4# Ubuntu 示例
wget -q https://openresty.org/package/pubkey.gpg
sudo apt-key add pubkey.gpg
sudo apt-get install openresty
二、证书生成:2 行命令搞定 HTTPS 密钥
生成域名证书
在项目目录执行(支持多域名/IP):1
mkcert localhost 127.0.0.1 ::1 yourdomain.com
生成
localhost+3.pem
(证书)和localhost+3-key.pem
(私钥)证书存放建议
创建专属目录管理证书,例如:1
2
3/usr/local/openresty/nginx/conf/ssl/
├── localhost+3.pem
└── localhost+3-key.pem
三、OpenResty 配置:Nginx 的 HTTPS 魔法
编辑 nginx.conf
,添加 HTTPS 服务块:
1 | server { |
-关键配置解读:*
ssl_certificate
指向 mkcert 生成的证书proxy_pass
将 HTTPS 请求转发到本地 HTTP 服务
四、服务验证:3 种方式测试 HTTPS
浏览器访问
打开https://localhost
,地址栏显示 🔒安全 标识即成功(不再有警告!)命令行校验
1
2curl -vIk https://localhost
# 查看输出中的 SSL 握手信息证书详情检查
Chrome 浏览器 → 点击锁图标 → 查看证书 → 颁发者显示 「mkcert」 即正确
五、进阶技巧:开发效率翻倍的秘诀
多域名/端口支持
生成证书时追加域名:1
mkcert "*.test.com" app.test.com 192.168.1.100
Nginx 配置中通过
server_name
区分不同服务局域网 HTTPS 测试
生成含内网 IP 的证书:1
mkcert 192.168.1.100
手机扫码安装 CA 证书后,即可用 HTTPS 访问开发机
证书自动更新(高阶)
结合lua-resty-auto-ssl
实现证书自动签发:1
2
3
4
5lua_shared_dict auto_ssl 1m;
init_by_lua_block {
auto_ssl = require "resty.auto-ssl"
auto_ssl.setup({ storage_dir = "/path/to/storage" })
}适合需要动态管理数百个域名的场景
常见问题排查表
现象 | 解决方案 |
---|---|
浏览器提示证书无效 | 检查是否执行 mkcert -install |
Nginx 启动报错 | 确认证书路径权限为 755 |
无法访问 443 端口 | 关闭防火墙或放行端口 |
结语:让本地开发更专业
通过 mkcert + OpenResty 的组合,我们不仅解决了 HTTPS 的配置难题,更为团队协作、接口调试提供了标准化环境。现在,你可以自信地说:“我的本地服务,和线上一样安全!”
-本文部分方案参考自,更多技术细节可访问原文链接。*
👉 转发给正在为 HTTPS 头疼的伙伴,一起告别「不安全」!