在我的 Qt 应用程序中,我打开一个 QWebView,它通过 https 向服务器发出 AJAX 请求。
一些代码:
m_network = new QNetworkAccessManager(this);
...
QObject::connect(m_network, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError> & )),
this, SLOT(sslErrorHandler(QNetworkReply*, const QList<QSslError> & )));
和处理程序:
void MainWin::sslErrorHandler(QNetworkReply* qnr, const QList<QSslError> & errlist) {
foreach (QSslError err, errlist) {
qDebug() << "ssl error: " << err << endl;
}
qnr->ignoreSslErrors();
}
我在某些 Windows XP 机器上遇到以下错误,不是所有机器,有些机器工作正常。我在每台机器上都安装了 OpenSSL。
Debug: ssl error: "The root certificate of the certificate chain is self-signed, and untrusted"
最佳答案
检查计算机时钟中的日期和时间。
一些安全软件拦截安全连接并发送它们自己的证书。
一些例子是 ESET 和 Bitdefender。
ESET 设置 -> 高级设置 -> 扩展 Web 和电子邮件树 -> SSL SSL协议(protocol):不扫描SSL协议(protocol)
关于Qt QWebView 证书链的根证书是自签名的,不受信任,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19432561/