谷歌内嵌CEF初始化跳过安全证书,没有ignore_certificate_errors怎么办
时间: 2024-01-18 11:05:00 浏览: 34
如果您的CEF版本中没有提供 `ignore_certificate_errors` 参数,您可以尝试使用以下方法来实现跳过安全证书验证:
1. 实现自定义的 `CefResourceRequestHandler` 类,重写其中的 `GetResourceHandler` 方法:
```cpp
class CustomResourceRequestHandler : public CefResourceRequestHandler {
public:
bool GetResourceHandler(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, CefRefPtr<CefRequest> request) override {
// 在此处检查请求的 URL 是否为 HTTPS,如果是,则跳过证书验证
if (request->GetURL().substr(0, 5) == "https") {
return false; // 返回 false,表示继续使用默认的证书验证
}
return true; // 返回 true,表示继续使用默认的资源处理器
}
// 其他重写的方法...
};
```
2. 在创建浏览器实例时,将自定义的 `CefResourceRequestHandler` 对象应用于 `CefBrowserSettings`:
```cpp
CefBrowserSettings browserSettings;
browserSettings.handler = new CustomResourceRequestHandler();
CefRefPtr<CefBrowser> browser = CefBrowserHost::CreateBrowserSync(windowInfo, handler, url, browserSettings, nullptr);
```
通过上述方式,我们自定义了资源请求处理器,并在其中检查了请求的 URL 是否为 HTTPS。如果是 HTTPS 请求,则返回 `false`,表示继续使用默认的证书验证;如果不是 HTTPS 请求,则返回 `true`,表示继续使用默认的资源处理器。
请注意,这种方法可能会导致安全风险,请谨慎使用,并确保在合适的环境和情况下进行测试和部署。
希望对您有所帮助!如果还有其他问题,请随时提问。