前端调试 如何配置 https 证书

697 阅读2分钟

前言

  • 我们在本地调试的时候,偶尔会遇到一些协议相关的问题,例如某些 API 必须要 https 协议,例如我们 http 调试正常 https 却出了问题
  • 当这些情况时,我们每次都修改一点点再扔到 https 环境查看,会使得我们开发的敏捷度造成很大的干扰
  • 如果我们能在本地环境生成证书,就可以很好的解决这个问题,我们将会使用 mkcert 帮助我们完成一系列操作,让我们可以在本地使用 https 协议
  • ps:设备为 windowPC 和 iPhone,如果平台不同也不用慌,本文会把方法贴出来

mkcert 的安装

安装 Chocolatey

  • 这是个 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

  • 他是用于制作本地受信任的开发证书的简单工具,不需要进行配置,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 都大同小异,这里不罗列了
  • image.png

移动端使用

查看根CA

  • 要在移动端上使用信任证书,我们必须安装根CA,根CA的生成是在我们刚生成证书时自动生成的,使用下面指令查看位置
mkcert -CAROOT

IOS

  • 使用 AirDrop、通过电子邮件将 CA 发送给自己的设备,或者从 HTTP 服务器提供它,我是用 anywhere 直接映射出来,safari打开,在 设备 > 已下载配置文件 中安装配置文件,然后对该证书 完全信任

image.jpg

  • 然后就可以了

Android