Electron中使用https时,证书是自签名的不可信域名,请求失败?
需求是:客户环境是使用https,但是证书是自签名的。
因此在一般浏览器访问该网站的地址时会提示证书不安全,需要手动点击“继续访问不安全链接”,进行跳转才能访问。
但是我们是Electron客户端,不可能像浏览器一样有个跳转提示,因此需要做绕开这个认证的过程。具体配置如下:
/**
* 兼容https非可信域
*/
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
log('certificate-error');
//允许私有证书
event.preventDefault()
callback(true)
});
也可以尝试使用其他网友的建议:
// 忽略证书相关错误
app.commandLine.appendSwitch('ignore-certificate-errors')
如果是使用node的request做网络请求,则需要统一做请求的default配置,具体如下:
// 忽略自签名的https的证书ssl、tls
request = request.defaults({
strictSSL: false, // allow us to use our self-signed cert for testing
rejectUnauthorized: false
})
还有一个未解决的问题,使用electron-update的setFeedURL后在下载升级包的过程中会报错,仍未解决,敬请各位大佬回复解决,具体配置如下:
autoUpdater.setFeedURL({
provider: 'generic',
url: downUrl
})
autoUpdater.requestHeaders = {
strictSSL: false,
rejectUnauthorized: false
}