[SSL] Properly restore user accepted certificats
authorHannah von Reth <hannah.vonreth@owncloud.com>
Mon, 10 Feb 2020 12:08:19 +0000 (13:08 +0100)
committerKevin Ottens <kevin.ottens@nextcloud.com>
Tue, 15 Dec 2020 09:59:06 +0000 (10:59 +0100)
src/gui/accountmanager.cpp
src/libsync/account.cpp

index 85f475cac818975ccdfc4d05c69c3df501aaea1f..98357e3d30e1ca4a5c862cb76731740b6cea50e6 100644 (file)
@@ -332,7 +332,9 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
 
     // now the server cert, it is in the general group
     settings.beginGroup(QLatin1String("General"));
-    acc->setApprovedCerts(QSslCertificate::fromData(settings.value(caCertsKeyC).toByteArray()));
+    const auto certs = QSslCertificate::fromData(settings.value(caCertsKeyC).toByteArray());
+    qCInfo(lcAccountManager) << "Restored: " << certs.count() << " unknown certs.";
+    acc->setApprovedCerts(certs);
     settings.endGroup();
 
     return acc;
index b13fd329ddb5f149bd981bf7efae69fc4641f20a..ee6d76305f562bb63458d1a73cd3f44b05a89392 100644 (file)
@@ -327,6 +327,7 @@ QSslConfiguration Account::getOrCreateSslConfig()
 void Account::setApprovedCerts(const QList<QSslCertificate> certs)
 {
     _approvedCerts = certs;
+    QSslSocket::addDefaultCaCertificates(certs);
 }
 
 void Account::addApprovedCerts(const QList<QSslCertificate> certs)