本地服务https协议运行
暂时直接用当前 DHCP 分配的 192.168.1.81 来做 HTTPS。以后 IP 变了,再重新生成一次证书即可。
你的目标是:
1. Mac 安装 mkcert
如果没安装:
确认:
2. 在 Vite 项目生成证书
进入项目根目录:
生成同时支持 localhost 和当前局域网 IP 的证书:
mkcert \
-key-file cert/dev-key.pem \
-cert-file cert/dev.pem \
localhost \
127.0.0.1 \
192.168.1.81
最终:
顺便建议 .gitignore 加上:
3. 配置 Vite
如果你是 vite.config.ts:
import { defineConfig } from 'vite'
import fs from 'node:fs'
import path from 'node:path'
export default defineConfig({
server: {
host: '0.0.0.0',
port: 5173,
https: {
key: fs.readFileSync(
path.resolve(__dirname, 'cert/dev-key.pem')
),
cert: fs.readFileSync(
path.resolve(__dirname, 'cert/dev.pem')
),
},
},
})
如果你原来的 vite.config.ts 里面还有 Vue 插件、代理、alias 等配置,不要整个替换,只增加:
4. 启动
Vite 应该会显示类似:
你自己的 Mac 访问:
以及:
都应该正常。
5. 局域网同事现在已经能访问,但证书还不受信任
同事访问:
网络应该已经能通。
但他大概率会看到:
您的连接不是私密连接 NET::ERR_CERT_AUTHORITY_INVALID
原因是你的 Mac 信任 mkcert 创建的 CA,同事电脑不信任。
在你的 Mac 执行:
会返回一个目录,比如:
打开:
里面有:
你只把:
rootCA.pem
发给同事。
⚠️ 绝对不要把 rootCA-key.pem 发出去。 那是 CA 私钥。
同事安装 rootCA.pem 到系统的受信任根证书颁发机构,重新打开浏览器,再访问:
就应该是正常受信任的 HTTPS。
你可以先做到 第 4 步,运行 npm run dev。
如果启动时报错,或者 Vite 输出的不是:
把你的 vite.config.ts 和启动结果贴给我,我直接按你现有项目配置改,不需要动其他东西。