Использование встроенного в приложение прокси-сервера для доступа к заголовкам ответов https в QtWebEngine - PullRequest
0 голосов
/ 17 июня 2020

Я сопровождаю веб-браузер Konqueror для Linux (https://kde.org/applications/internet/org.kde.konqueror), и я пытаюсь перенести его из QtWebKit в QtWebEngine, работая над его многочисленными ограничениями.

В частности, одна из самых больших проблем заключается в том, что Konqueror должен самостоятельно управлять сетевыми запросами и ответами (или, скорее, управлять ими с помощью базовых библиотек KDE), что не разрешено QtWebEngine.

Единственная идея, которая пришла мне в голову, - это написать http-прокси и интегрировать его в Konqueror, а затем заставить QtWebEngine использовать его. Таким образом, Konqueror сможет видеть заголовки ответов до того, как они достигнут QtWebEngine, и делать с ними все, что ему нужно.

Хотя это правильно работает с URL-адресами HTTP, но не работает с HTTPS, потому что, конечно, прокси-сервер видит только зашифрованные заголовки. Мне интересно, сможет ли Konqueror создать сертификат SSL и использовать его для шифрования связи с QtWebEngine. Я бы надеялся сделать что-то вроде этого: - QtWebEngine отправляет запрос на прокси-сервер в Konqueror, зашифрованный с использованием ключа, предоставленного самим Konqueror - Konqueror расшифровывает запрос и отправляет его на сервер как обычно - Konqueror получает ответ от сервера и анализирует его - Konqueror зашифровывает ответ своим собственным сертификатом и отправляет его QtWebEngine.

К сожалению, QtWebEngine не предоставляет способ сообщить ему, что сертификат, предоставленный Konqueror, должен быть доверенным ( конечно, этот сертификат нельзя установить в масштабе всей системы). У него есть функция, которая вызывается в случае ошибки сертификата и позволяет игнорировать ошибку. Однако мои попытки пока не увенчались успехом.

Действительно ли то, что я надеюсь достичь, невозможно, или я делаю что-то не так?

...