跳转至

本地服务https协议运行

暂时直接用当前 DHCP 分配的 192.168.1.81 来做 HTTPS。以后 IP 变了,再重新生成一次证书即可。

你的目标是:

你自己:
https://localhost:5173

局域网其他人:
https://192.168.1.81:5173

1. Mac 安装 mkcert

如果没安装:

brew install mkcert
mkcert -install

确认:

mkcert --version

2. 在 Vite 项目生成证书

进入项目根目录:

mkdir -p cert

生成同时支持 localhost 和当前局域网 IP 的证书:

mkcert \
  -key-file cert/dev-key.pem \
  -cert-file cert/dev.pem \
  localhost \
  127.0.0.1 \
  192.168.1.81

最终:

项目
├── cert
│   ├── dev.pem
│   └── dev-key.pem
├── src
├── package.json
└── vite.config.ts

顺便建议 .gitignore 加上:

cert/

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 等配置,不要整个替换,只增加:

server: {
  host: '0.0.0.0',
  https: {
    key: fs.readFileSync(...),
    cert: fs.readFileSync(...),
  }
}

4. 启动

npm run dev

Vite 应该会显示类似:

Local:   https://localhost:5173/
Network: https://192.168.1.81:5173/

你自己的 Mac 访问:

https://localhost:5173

以及:

https://192.168.1.81:5173

都应该正常。


5. 局域网同事现在已经能访问,但证书还不受信任

同事访问:

https://192.168.1.81:5173

网络应该已经能通。

但他大概率会看到:

您的连接不是私密连接 NET::ERR_CERT_AUTHORITY_INVALID

原因是你的 Mac 信任 mkcert 创建的 CA,同事电脑不信任

在你的 Mac 执行:

mkcert -CAROOT

会返回一个目录,比如:

/Users/xxx/Library/Application Support/mkcert

打开:

open "$(mkcert -CAROOT)"

里面有:

rootCA.pem
rootCA-key.pem

你只把:

rootCA.pem

发给同事。

⚠️ 绝对不要把 rootCA-key.pem 发出去。 那是 CA 私钥。

同事安装 rootCA.pem 到系统的受信任根证书颁发机构,重新打开浏览器,再访问:

https://192.168.1.81:5173

就应该是正常受信任的 HTTPS。


你可以先做到 第 4 步,运行 npm run dev

如果启动时报错,或者 Vite 输出的不是:

https://192.168.1.81:5173

把你的 vite.config.ts 和启动结果贴给我,我直接按你现有项目配置改,不需要动其他东西。

评论