QWebEngineView如何忽略SSL证书错误

最近用QT写客户端软件,思路是使用QWebEngineView来绘制本地的html或者服务器上的html做界面展示。可是发现QWebEngineView在Load一个https的URL的时候,由于ssl证书不可信导致提示有错误,无法显示内容,在QWebEngineView这个类里面找了半天都没看到忽略SSL证书错误的方法,后面终于找到了,原来在藏在QWebEnginePage这个类里面。

这里,需要你从QWebEnginePage继承一个类,重写certificateError方法

自定义的WebEnginePage类

#ifndef CUSTOMWEBENGINEPAGE_H
#define CUSTOMWEBENGINEPAGE_H

#include <QWebEnginePage>

class CustomWebEnginePage : public QWebEnginePage
{
public:
    CustomWebEnginePage();

    virtual bool certificateError(const QWebEngineCertificateError &certificateError);
};

#endif // CUSTOMWEBENGINEPAGE_H
#include "customwebenginepage.h"

CustomWebEnginePage::CustomWebEnginePage()
{

}

bool CustomWebEnginePage::certificateError(const QWebEngineCertificateError &certificateError)
{
    return true;
}

然后在初始化QWebEngineView的时候,把这个自定义的WebEnginePage设置给View对象就好了。

_webView = new QWebEngineView(this);
_webView->setPage(new CustomWebEnginePage());

成功!

Vue中预览图片时忽略SSL证书,通常是在开发环境下遇到本地HTTPS服务器的SSL证书无效或不受信任的情况。为了能够正常预览图片而不被浏览器的安全警告所阻止,可以通过配置开发服务器来忽略SSL证书错误。 在Vue项目中,通常使用webpack作为构建工具,并可能使用webpack-dev-server或vue-cli-service(由vue-cli创建的项目使用的脚手架工具)来提供开发服务器。要忽略SSL证书,可以按照以下方法进行配置: 1. 如果你使用的是webpack-dev-server,可以通过配置其options中的`https`属性来忽略SSL证书。例如: ```javascript devServer: { https: { key: fs.readFileSync('path/to/server.key'), cert: fs.readFileSync('path/to/server.crt'), ca: fs.readFileSync('path/to/ca.pem'), // 设置为false以忽略SSL证书错误 rejectUnauthorized: false } } ``` 2. 如果你使用的是vue-cli-service,可以通过环境变量来告诉dev server忽略SSL证书错误。在`vue.config.js`文件中,可以设置环境变量: ```javascript module.exports = { devServer: { https: true, // 设置环境变量 before: (app, server) => { process.env.NODE_ENV = 'development'; process.env.WEBPACK_DEV_SERVER = 'true'; // 设置server的配置以忽略SSL证书错误 server亲近度忽略SSL证书错误 server亲近度忽略SSL证书错误 app亲近度忽略SSL证书错误 app亲近度忽略SSL证书错误 } } }; ``` 3. 另外,你也可以在启动dev server时,通过命令行直接设置环境变量: ```shell HTTPS=true NODE_ENV=development vue-cli-service serve ``` 在使用上述任何方法时,请确保你了解忽略SSL证书带来的安全风险。这种做法只应限于开发环境,绝不能用于生产环境,因为这会导致潜在的安全漏洞。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值