前言
- 我们在本地调试的时候,偶尔会遇到一些协议相关的问题,例如某些 API 必须要
https 协议,例如我们 http 调试正常 https 却出了问题
- 当这些情况时,我们每次都修改一点点再扔到
https 环境查看,会使得我们开发的敏捷度造成很大的干扰
- 如果我们能在本地环境生成证书,就可以很好的解决这个问题,我们将会使用
mkcert 帮助我们完成一系列操作,让我们可以在本地使用 https 协议
- ps:设备为 windowPC 和 iPhone,如果平台不同也不用慌,本文会把方法贴出来
mkcert 的安装
- 这是个 window 上的软件包管理器,可以让我们更方便的管理软件
- 使用 管理员权限 打开
powershell,输入以下内容即可安装成功
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
- 他是用于制作本地受信任的开发证书的简单工具,不需要进行配置,
mkcert 会自动在系统根存储中创建并安装本地 CA,并生成本地受信任的证书。但是,mkcert 不会自动配置服务器以使用证书
- 简单来说,他就是单纯的生成 CA证书
- 安装也是一句话,使用我们刚安装好的
Chocolatey,也是 powershell 一句话
choco install mkcert
其他平台安装
mkcert 证书生成
- 下面
xxx.xx.xx.xxx 为本地 IP 地址,例如 192.168.1.1
- 反正就是把你要用到证书的地址输入进去,用空格分隔
mkcert localhost 127.0.0.1 xxx.xx.xx.xxx
mkcert -install
- 这样,证书就生成好了,文件有 2 个,找到他修改成你喜欢的名字(多个ip 生成出来会有非法字符+)
xxx.pem xxx-key.pem
证书使用
webpack
- 把我们刚生成的证书扔到项目根目录
webpack.config.js
module.exports = {
devServer: {
https: {
key: fs.readFileSync("./ca/xxx-key.pem"),
cert: fs.readFileSync("./ca/xxx.pem"),
},
},
};
- 这样就好了,其他的工具或者直接用
node 都大同小异,这里不罗列了

移动端使用
查看根CA
- 要在移动端上使用信任证书,我们必须安装根CA,根CA的生成是在我们刚生成证书时自动生成的,使用下面指令查看位置
mkcert -CAROOT
IOS
- 使用 AirDrop、通过电子邮件将 CA 发送给自己的设备,或者从 HTTP 服务器提供它,我是用
anywhere 直接映射出来,safari打开,在 设备 > 已下载配置文件 中安装配置文件,然后对该证书 完全信任

Android