Я использую класс QNetworkAccessManager
для установления связи HTTPS с удаленным сервером.Связь работает хорошо, но мне нужно будет обновить сертификаты.
Я не очень разбираюсь в SSL и хотел бы уточнить один момент.
Согласно http://doc.qt.io/qt-5/qnetworkaccessmanager.html#encrypted, первоначальное SSL-квитирование работает нормально, потому что следующий слот, подключенный к сигналу QNetworkAccessManager
encrypted(QNetworkReply*)
, называется:
void MyAccessManager::onEncrypted(QNetworkReply *rep)
{
Q_UNUSED(rep)
qDebug() << "SSL/TLS handshake success";
}
Это встроенный Linux, в котором уже установлено несколько файлов .crt
в /usr/share/ca-certificates/mozilla/
и список .pem
файлов в /etc/ssl/certs/
Насколько я понимаю, Qt может найти эти файлы автоматически, потому что когда я получаю QSslConfiguration
из QNetworkRequest
, я могу видетьсписок QSslCertificate
используется, например, с:
QSslConfiguration conf = myNetworkRequest.sslConfiguration();
for (int i = 0; i < conf.caCertificates().size(); i++)
qDebug() << conf.caCertificates().at(i).subjectInfo(QSslCertificate::Organization);
и у меня есть вывод:
QDEBUG : ("DigiCert Inc")
QDEBUG : ("VeriSign, Inc.")
QDEBUG : ("GlobalSign")
...
Мой вопрос: как можно увидеть, какие из нихсертификаты и файлы, эффективно использовались QSslSocket
для этого конкретного соединения?
Спасибо.