目录
- 使用自定义证书
- 完整配置示例
- 证书生成方案
- 常见问题与解决方案
使用自定义证书
在本地开发服务器使用https需要使用自定义证书,可以这样配置:
js
复制
// vite.config.js
import fs from 'fs'
export default {
server: {
https: {
key: fs.readFileSync('./cert/key.pem'),
cert: fs.readFileSync('./cert/cert.pem')
}
}
}
完整配置示例
js
复制
import fs from 'fs'
import { defineConfig } from 'vite'
export default defineConfig({
server: {
https: {
key: fs.readFileSync('./cert/key.pem'),
cert: fs.readFileSync('./cert/cert.pem'),
strictPort: true,
port: 3000,
open: true
},
proxy: {
'/api': {
target: 'https://api.example.com',
changeOrigin: true,
secure: false // https接口需要配置
}
}
}
})
证书生成方案
1. 使用 mkcert(推荐)
bash
复制
# MacOS安装
brew install mkcert
# Windows安装
choco install mkcert
# 生成证书
mkcert localhost
2. 使用 OpenSSL
bash
复制
# 生成私钥
openssl genrsa -out key.pem 2048
# 生成证书
openssl req -new -x509 -key key.pem -out cert.pem -days 365 -subj "/CN=localhost"
3. 使用Vite自动生成
js
复制
export default defineConfig({
server: {
https: true
}
})
常见问题与解决方案
1. mkcert安装失败
如果遇到Chocolatey锁定文件错误,可以:
powershell
复制
# 以管理员身份运行PowerShell
Remove-Item 'C:\ProgramData\chocolatey\lib\960379d0c075d4e5840fa9c2c120a75d9b2885b5' -Force
choco install mkcert
或直接从GitHub下载可执行文件:
- 访问 github.com/FiloSottile…
- 下载Windows版本
- 重命名为mkcert.exe并放入系统PATH
2. 证书信任问题
- 开发环境中可以在浏览器中接受自签名证书的风险
- 使用mkcert生成的证书会自动被系统信任
- 生产环境应使用正式的SSL证书
3. 代理配置
当使用HTTPS开发服务器配合代理时:
js
复制
server: {
proxy: {
'/api': {
target: 'https://api.example.com',
changeOrigin: true,
secure: false // 重要:如果是自签名证书需要设置
}
}
}
最佳实践建议
- 开发环境推荐使用Vite的自动HTTPS配置(
https: true) - 需要自定义证书时优先使用mkcert
- 确保代理配置正确,特别是
secure选项 - 记住这只是开发环境配置,生产环境需要使用正式的SSL证书
注意事项
- 自签名证书会触发浏览器警告,这是正常的
- 开发时的HTTPS配置不应用于生产环境
- 使用代理时注意配置
secure选项 - 某些API可能强制要求HTTPS
- 配置HTTPS可能会略微影响开发服务器的启动时间