QWebkit does not load from Url due to SslHandshakeFailedError
Unsolved
Qt WebKit
-
I'm seeing SslHandshakeFailedErrors in my Qt application when I try to load from a Microsoft Azure SAML url in QWebView on Ubuntu 22.04.
The result is just a blank QWebView window.This same Azure SAML url was loading in Ubuntu 20.04.
Okta SAML url works in 22.04.Here's a brief snippet of my setup:
// Setup QWebView *m_pView = new QWebView(); MyNetworkAccessManager* m_pNetworkAccessManager = new MyNetworkAccessManager(); m_pView->page()->setNetworkAccessManager(m_pNetworkAccessManager); // QWebView: Connect signals/slots connect(m_pView, SIGNAL(urlChanged(const QUrl&)), this, SLOT(onUrlChanged(const QUrl&))); connect(m_pView, SIGNAL(loadFinished(bool)), this, SLOT(onLoadFinished(bool))); // MyNetworkAccessManager: Connect signals/slots connect(m_pNetworkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onFinished(QNetworkReply*))); connect(m_pNetworkAccessManager, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)), this, SLOT(onSslErrors(QNetworkReply*, const QList<QSslError>&))); // Load m_pView->page()->mainFrame()->load(m_url);
As one of the forums mentioned I should modify the SSL configuration so I reimplemented QNetworkAccessManager:
// Network Access Manager class MyNetworkAccessManager : public QNetworkAccessManager { public: MyNetworkAccessManager(); protected: QNetworkReply* createRequest(Operation op, const QNetworkRequest &req, QIODevice* outgoingData = 0 ); };
// Network Access Manager MyNetworkAccessManager::MyNetworkAccessManager() {} QNetworkReply * MyNetworkAccessManager::createRequest(Operation op, const QNetworkRequest& req, QIODevice* outgoingData ){ QSslConfiguration config = req.sslConfiguration(); config.setPeerVerifyMode(QSslSocket::VerifyNone); config.setProtocol(QSsl::AnyProtocol); QNetworkRequest request(req); request.setSslConfiguration(config); return QNetworkAccessManager::createRequest(op, request, outgoingData); }
After making these changes I'm still seeing the handshake errors in the onSslErrors slot and the QWebView window is still blank. Any help would be appreciated.