diff --git a/src/auth/basic/qgsauthbasicmethod.cpp b/src/auth/basic/qgsauthbasicmethod.cpp index 371d15f3ac4..9ca236505b5 100644 --- a/src/auth/basic/qgsauthbasicmethod.cpp +++ b/src/auth/basic/qgsauthbasicmethod.cpp @@ -105,18 +105,28 @@ bool QgsAuthBasicMethod::updateDataSourceUriItems( QStringList &connectionItems, return false; } + QString sslMode = QStringLiteral( "prefer" ); + int sslModeIdx = connectionItems.indexOf( QRegExp( "^sslmode='.*" ) ); + if ( sslModeIdx != -1 ) + { + sslMode = connectionItems.at( sslModeIdx ).split( '=' ).at( 1 ); + } + // SSL Extra CAs QString caparam; QList cas; - cas = QgsApplication::authManager()->trustedCaCerts(); - // save CAs to temp file - QString tempFileBase = QStringLiteral( "tmp_basic_%1.pem" ); - QString caFilePath = QgsAuthCertUtils::pemTextToTempFile( - tempFileBase.arg( QUuid::createUuid().toString() ), - QgsAuthCertUtils::certsToPemText( cas ) ); - if ( ! caFilePath.isEmpty() ) + if ( sslMode.startsWith( QStringLiteral( "verify-" ) ) ) { - caparam = "sslrootcert='" + caFilePath + "'"; + cas = QgsApplication::authManager()->trustedCaCerts(); + // save CAs to temp file + QString tempFileBase = QStringLiteral( "tmp_basic_%1.pem" ); + QString caFilePath = QgsAuthCertUtils::pemTextToTempFile( + tempFileBase.arg( QUuid::createUuid().toString() ), + QgsAuthCertUtils::certsToPemText( cas ) ); + if ( ! caFilePath.isEmpty() ) + { + caparam = "sslrootcert='" + caFilePath + "'"; + } } // Branch for OGR