vite-plugin-mkcert 是为 Vite 提供 HTTPS 本地开发支持的插件,基于 mkcert 自动生成受系统信任的证书,解决浏览器证书警告、HTTP/2 并发限制等问题,支持自定义域名、强制生成、国内镜像等特性。

在 TypeScript 项目中用 Vite 配置 HTTPS,核心是让开发服务器启用 TLS 加密连接,主要用于本地调试需要 HTTPS 的场景(比如 WebRTC、Service Worker、PWA、支付 SDK 或跨域受限的 API)。不需要买证书,用自签名方式即可,但要注意浏览器信任问题。
推荐方式:用官方插件 @vitejs/plugin-basic-ssl
这是最轻量、零配置的方案,适合快速启动 HTTPS 开发环境:
- 安装插件:
pnpm add @vitejs/plugin-basic-ssl -D(或 npm/yarn) - 在
vite.config.ts中引入并启用:
import { defineConfig } from 'vite';
import basicSsl from '@vitejs/plugin-basic-ssl';
export default defineConfig({
plugins: [basicSsl()],
});
启动后自动监听 https://localhost:5173。插件会生成并缓存自签名证书到 ~/.vite-plugin-ssl,下次启动复用,无需手动管理文件。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
手动指定证书:适用于多域名或需系统级信任的场景
当你要访问 https://myapp.local 或同时支持 localhost 和 127.0.0.1 时,自动生成的证书可能被浏览器标记“不安全”。这时建议用 mkcert 生成受系统信任的证书:
- 全局安装:
pnpm add -g mkcert - 安装根 CA:
mkcert -install(需输入系统密码) - 在项目内生成证书:
mkcert localhost 127.0.0.1 myapp.local - 证书会输出为
localhost+2.pem(含 cert + key)和localhost+2-key.pem
然后在 vite.config.ts 中读取并配置:
import { defineConfig } from 'vite';
import { readFileSync } from 'fs';
import { join } from 'path';
export default defineConfig({
server: {
https: {
key: readFileSync(join(__dirname, 'localhost+2-key.pem')),
cert: readFileSync(join(__dirname, 'localhost+2.pem')),
},
},
});
关键细节注意
-
证书路径必须是绝对路径,相对路径容易出错;推荐用
join(__dirname, ...) - 若代理后端 HTTPS 接口(如
proxy指向https://api.example.com),需设secure: false跳过 Node.js 的证书校验 - 浏览器首次访问自签名 HTTPS 地址时,会提示“不安全”,可点击「高级 → 继续前往」临时跳过;若用
mkcert生成并安装了根 CA,则不会出现警告 - Vite 启用 HTTPS 后,默认尝试启用 HTTP/2,但若配置了
proxy,HTTP/2 会被禁用(仅走 TLS)
不建议直接设 https: true
虽然 Vite 支持 server.https: true 这种布尔写法,但它只启用 HTTPS 协议,不提供有效证书,浏览器必然拦截,实际不可用。务必配合证书文件或插件使用。

















