关于为什么写此篇文章
electron官方以及整个互联网上都找不到确切的资料,或者现有的资料非常混乱。有些问题询问了ChatGPT但是得到的回答也存在错误,给出了node的tls库和electon的库存在addRootCA方法的这种回答,所以做个简单总结。
electron版本:17.4.11
前端框架:vue 3 + webpack
如何正常在Electron中访问自签发证书的网站
方案一(普遍的解法):
在electron的主进程开始的地方加入以下代码
app.commandLine.appendSwitch('ignore-certificate-errors')
另外需要注意的是,需要在创建BrowserWindow时,添加webSecurity为false的设置,官方默认为true。
new BrowserWindow({
......
webPreferences: {
......
webSecurity: false,
},
})
方案二
windows平台
使用系统的证书管理器,导入CA证书。
题外话:最初我的开发环境中是导入了自签发的CA证书的,而且是导入到“受信任的根证书办法机构”的。但是很奇怪的是,在次日再运行的时候,有半数以上的请求(跨域请求,