Из документации
void QNetworkRequest::setSslConfiguration ( const QSslConfiguration & config )
:
По умолчанию конфигурация SSL не
набор, который позволяет бэкэндам
свободно выбирать конфигурацию
лучшее для них.
Вы можете проверить это утверждение, используя следующий код:
#include <QtGui/QApplication>
#include <QtCore/QDebug>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QSslConfiguration>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QNetworkAccessManager qnam;
QNetworkRequest request;
QNetworkReply* reply = qnam.get(request);
qDebug() << "Default SSL configuration isNull: "
<< QSslConfiguration::defaultConfiguration().isNull();
qDebug() << "SSL configuration used by QNAM isNull: "
<< reply->sslConfiguration().isNull();
return app.exec();
}
Однако вы, похоже, путаете хранилище сертификатов корневого ЦС с конфигурацией SSL. Первый - только одна часть последнего (см. QList<QSslCertificate> QSslConfiguration::caCertificates () const
). Если вы хотите убедиться, что ваши сертификаты корневого CA будут использоваться QNAM, вы можете воспользоваться тем, что QNAM использует QSslSocket для установления SSL-соединений и использования любого из следующих статических методов
void addDefaultCaCertificate ( const QSslCertificate & certificate )
bool addDefaultCaCertificates ( const QString & path, QSsl::EncodingFormat encoding = QSsl::Pem, QRegExp::PatternSyntax syntax = QRegExp::FixedString )
void addDefaultCaCertificates ( const QList<QSslCertificate> & certificates )
void setDefaultCaCertificates ( const QList<QSslCertificate> & certificates )
для установки сертификатов корневого ЦС, которые будут использоваться всеми SSL-соединениями, выполненными с использованием QSslSocket. Помните, что это глобальная настройка, которая влияет на все SSL-соединения, сделанные с использованием QSslSocket , а не только , сделанные с использованием QNAM. Нет API для установки этого только для определенного QNAM или для всех QNAM.