Electron 导入证书时的电子加载页面
我使用的是https,如果是自签名证书,我想提示用户是否要导入所需的证书。(实际上,浏览器在加载没有受信任证书的页面时所做的事情与此相同) 我发现electron中有一个函数Electron 导入证书时的电子加载页面,electron,Electron,我使用的是https,如果是自签名证书,我想提示用户是否要导入所需的证书。(实际上,浏览器在加载没有受信任证书的页面时所做的事情与此相同) 我发现electron中有一个函数dialog.showCertificateTrustDialog([browserWindow,]options,callback),它工作得很好。我想在出现证书错误时使用它 大概是这样的: app.on('certificate-error', (event, webContents, url, error, certi
dialog.showCertificateTrustDialog([browserWindow,]options,callback)
,它工作得很好。我想在出现证书错误时使用它
大概是这样的:
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
dialog.showCertificateTrustDialog({certificate:certificate, message: "some msg"},
() => {
if (was certificate ok) {
event.preventDefault();
callback(true);
}
else {
callback(false);
}
}
);
});
但是我不知道怎么做是不是证书ok
部分
可能吗?或者我必须再次加载页面才能显示它吗?如果我在已经导入证书的情况下运行应用程序,它就可以正常工作。否则,我只能得到一个空白窗口
非常感谢您的帮助,谢谢您目前,我已决定使用以下解决方案,但在我看来,它更像是一个黑客。再次调用showCertificateTrustDialog函数后,我尝试再次加载页面,但如果再次抛出证书错误
,我将忽略它。因为我不喜欢这个,所以我仍然对其他解决方案持开放态度
let certificateErrorRetry = false;
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
certificateErrorRetry = !certificateErrorRetry;
if (certificateErrorRetry) {
const {dialog} = require('electron');
dialog.showCertificateTrustDialog({certificate: certificate, message: "some msg" }, () => {
myapp.win.loadURL(url);
});
}
else { show some error }
});