- Published on
vite中ssl证书不匹配的解决方法
- Authors
- Name
- 国Wei
- @ygweric
vite项目本地开发时候,遇到以下问题:
Error: Hostname/IP does not match certificate's altnames: Host: iot-test.xxx.com. is not in the cert's altnames: DNS:sys-test.xxx.com
看描述,是两个同源的证书不一致,这个问题在开发环境中非常常见。
解决方法:
第一步,先查看vite的官方文档,看一下vite的server和proxy的配置方法。
https://vitejs.dev/config/server-options#server-proxy
能看到vite的proxy使用的时 http-proxy
. 进入看看详情:
https://github.com/http-party/node-http-proxy#options
对应的参数中找相关的配置一次查看,然后我们找到了agent的这个参数。
- agent: object to be passed to http(s).request (see Node's https agent and http agent objects)
可以看到他继承于 Node's https agent
继续阅读https agent 文档
接着又来到了 http.Agent
.
然后不断的探索。
找到了最终的答案,需要设置 rejectUnauthorized:false
最终方法如下, 在vite.config.js的server.proxy添加如下代码
agent: new https.Agent({
// fix: Error: Hostname/IP does not match certificate's altnames: Host: iot-test.lihufuturetown.com. is not in the cert's altnames: DNS:sys-test.lihufuturetown.com
rejectUnauthorized: false,
}),
最终结果如下:
server: {
host:'0.0.0.0',
proxy: {
[env.VITE_APP_BASE_API]: {
target: 'https://iot-test.xxx.com:11183',
agent: new https.Agent({
// fix: Error: Hostname/IP does not match certificate's altnames: Host: iot-test.lihufuturetown.com. is not in the cert's altnames: DNS:sys-test.lihufuturetown.com
rejectUnauthorized: false,
}),
}
}
},
国 wei (Eric) Github