diff options
Diffstat (limited to 'src/network/ssl/qsslcontext.cpp')
-rw-r--r-- | src/network/ssl/qsslcontext.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/network/ssl/qsslcontext.cpp b/src/network/ssl/qsslcontext.cpp index f75ff3796d..22ad42116b 100644 --- a/src/network/ssl/qsslcontext.cpp +++ b/src/network/ssl/qsslcontext.cpp @@ -234,6 +234,17 @@ init_context: sslContext->errorCode = QSslError::UnspecifiedError; return sslContext; } + + // If we have any intermediate certificates then we need to add them to our chain + bool first = true; + foreach (const QSslCertificate &cert, configuration.d->localCertificateChain) { + if (first) { + first = false; + continue; + } + q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_EXTRA_CHAIN_CERT, 0, + q_X509_dup(reinterpret_cast<X509 *>(cert.handle()))); + } } // Initialize peer verification. |