Как получить сервер QSslCertificate из QNetworkAccessManager и QNetworkRequest?
Я отправляю запросы через QNetworkAccessManager::createRequest(Operation, QNetworkRequest, outgoingData)
, Я должен убедиться, что отпечаток SSL-сертификата - тот, который я ожидаю. К сожалению, в результате QNetworkReply
возвращает peerCertificate
с пустой подписью.
Документация гласит следующее:
Поскольку сертификат однорангового узла устанавливается на этапе установления связи, доступ к сертификату однорангового узла безопасен из слота, подключенного к сигналу sslErrors() или зашифрованному ().
Если возвращается нулевой сертификат, это может означать, что рукопожатие SSL не выполнено, или это может означать, что хост, к которому вы подключены, не имеет сертификата, или это может означать, что соединение отсутствует.
Таким образом, ошибка может заключаться в том, что соединение уже закрыто. Я не могу использовать QNetworkAccessManager::sslErrors()
Сигнал как этот сигнал не будет излучаться при использовании SSL-прокси (это то, что я хочу предотвратить).
Как получить SSL-сертификат Сервера? Возможно, есть еще сигналы, к которым у меня есть доступ и где сертификат еще доступен? Есть ли другой способ получить сертификат?
Обновить:
Теперь я могу получить правильный сертификат, реагируя на QNetworkAccessManager::finished(QNetworkReply*)
Сигнал. Но, к сожалению, этот сигнал не отправляется при отправке AJAX-запроса. Для меня обязательно также проверить отпечатки этих запросов. Есть идеи?