Auf dieser Seite

Secure Sockets Layer (SSL)-Klassen

Die folgenden Klassen bieten Unterstützung für sichere Netzwerkkommunikation unter Verwendung des Secure Sockets Layer (SSL)-Protokolls, wobei ein natives TLS-Backend, das OpenSSL-Toolkit oder ein geeignetes TLS-Plugin zur Verschlüsselung und Protokollabwicklung genutzt wird.

QDtls

Diese Klasse bietet Verschlüsselung für UDP-Sockets

QDtlsClientVerifier

Diese Klasse implementiert die serverseitige DTLS-Cookie-Generierung und -Überprüfung

QDtlsClientVerifier::GeneratorParameters

Diese Klasse definiert Parameter für den DTLS-Cookie-Generator

QOcspResponse

Diese Klasse repräsentiert eine Antwort des Online Certificate Status Protocol

QSsl

Deklariert Enumerationen, die allen SSL-Klassen in Qt Network

QSslCertificate

Praktische API für ein X.509-Zertifikat

QSslCertificateExtension

API für den Zugriff auf die Erweiterungen eines X.509-Zertifikats

QSslCipher

Stellt eine SSL-Verschlüsselungsalgorithmus dar

QSslConfiguration

Enthält die Konfiguration und den Status einer SSL-Verbindung

QSslDiffieHellmanParameters

Schnittstelle für Diffie-Hellman-Parameter für Server

QSslEllipticCurve

Stellt eine elliptische Kurve zur Verwendung durch Verschlüsselungsalgorithmen auf Basis elliptischer Kurven dar

QSslError

SSL-Fehler

QSslKey

Schnittstelle für private und öffentliche Schlüssel

QSslKeyingMaterial

Beschreibt exportiertes Schlüsselmaterial, das aus einer TLS-Sitzung abgeleitet wurde

QSslPreSharedKeyAuthenticator

Authentifizierungsdaten für Verschlüsselungssuiten mit vorab geteilten Schlüsseln (PSK)

QSslServer

Implementiert einen verschlüsselten, sicheren TCP-Server über TLS

QSslSocket

SSL-verschlüsselter Socket für Clients und Server

QSslSocket::AlertLevel

Beschreibt die Schwere einer Warnmeldung

QSslSocket::AlertType

Zählt mögliche Codes auf, die eine Warnmeldung haben kann

QDtls::HandshakeState

Beschreibt den aktuellen Status des DTLS-Handshakes

QSslSocket::ImplementedClass

Zählt die Klassen auf, die ein TLS-Backend implementiert

QDtls::QDtlsError

Beschreibt Fehler, die von QDtls und QDtlsClientVerifier erkannt werden können

QOcspResponse::QOcspCertificateStatus

Beschreibt den Online-Zertifikatsstatus

QOcspResponse::QOcspRevocationReason

Beschreibt den Grund für die Sperrung

QSslSocket::SupportedFeature

Listet mögliche Funktionen auf, die ein TLS-Backend unterstützt

Für Android-Anwendungen siehe „Hinzufügen von OpenSSL-Unterstützung für Android“.

Verwendung von Verschlüsselung in vernetzten Anwendungen

Verwenden Sie nach Möglichkeit immer Verschlüsselung, wenn Daten über ein Netzwerk übertragen werden. Klartext, also unverschlüsselte Daten, die leicht lesbar sind, legt sensible Daten wie Benutzerinformationen und Informationen über Netzwerksysteme offen.

Verwenden Sie „ QSslSocket::connectToHostEncrypted()“, um eine verschlüsselte Verbindung herzustellen, und überprüfen Sie mit „ QSslSocket::sslHandshakeErrors()“, ob SSL-Probleme vorliegen. Verwenden Sie „ QSslSocket::ignoreSslErrors()“ mit Vorsicht, da dies Sicherheitsrisiken in Ihrer Anwendung mit sich bringt.

Verwenden Sie QSslConfiguration, um strenge Sicherheitseinstellungen durchzusetzen. Die unterstützten Protokolle hängen vom SSL-Backend ab, und das Risikoniveau eines Protokolls kann sich in Zukunft ändern. Mit QSslConfiguration::setProtocol() können Sie ein neueres und sichereres Protokoll verwenden. Weitere Informationen zu den verfügbaren Protokollen finden Sie unter QSsl::SslProtocol.

Aktivieren und Deaktivieren der SSL-Unterstützung beim Kompilieren von Qt aus dem Quellcode

Beim Kompilieren von Qt aus dem Quellcode erstellt Qt Plugins für native TLS-Bibliotheken, die für das Betriebssystem, für das Sie kompilieren, unterstützt werden. Für Windows ist dies Schannel, für macOS hingegen Secure Transport.

Auf allen Plattformen prüft das Konfigurationssystem, ob der Header „ openssl/opensslv.h “ vorhanden ist, der von den Quell- oder Entwicklerpaketen von OpenSSL bereitgestellt wird. Wird dieser gefunden, wird das OpenSSL-Backend für Qt aktiviert und erstellt.

Hinweis: Während Qt bei der Kompilierung aus dem Quellcode weiterhin die ältere OpenSSL-Version 1.1.1 unterstützen kann, erfordern die Qt-Builds in der Qt Online Installer benötigen zur Laufzeit OpenSSL 3.

Standardmäßig lädt eine OpenSSL-fähige Qt-Bibliothek jede installierte OpenSSL-Bibliothek zur Laufzeit dynamisch. Es ist jedoch möglich, die Bibliothek bereits zur Kompilierungszeit einzubinden, indem Qt mit der Option „ -openssl-linked “ konfiguriert wird.

Beim Erstellen einer mit OpenSSL verknüpften Qt-Version verwendet das Qt-Build-System den CMake-Befehl „ FindOpenSSL “, um OpenSSL an mehreren Standardorten zu suchen. Sie können die CMake-Variable OPENSSL_ROOT_DIR setzen, um einen bestimmten Speicherort zu erzwingen.

Beispiel:

configure -openssl-linked -- -D OPENSSL_ROOT_DIR=<openssl_dir>

Um die SSL-Unterstützung in einem Qt-Build zu deaktivieren, konfigurieren Sie Qt mit der Option „ -no-openssl “.

Hinweise zum Paketieren Ihrer Anwendung

Wenn Sie Ihre Anwendung verpacken, verwenden Sie möglicherweise ein Tool wie „windeployqt“. Dieses kopiert alle Plugins für die von Ihnen verwendeten Bibliotheken in den Ordner „ plugins/ “. Für TLS benötigen Sie jedoch nur ein Backend, und Sie können die anderen Plugins vor dem Verpacken Ihrer Anwendung löschen. Wenn Sie beispielsweise unter Windows arbeiten und keine der zusätzlichen Funktionen benötigen, die das OpenSSL-Backend bietet, können Sie darauf verzichten, das Plugin „ qopensslbackend “ sowie die OpenSSL-Bibliothek mitzuliefern, und stattdessen lediglich das Plugin „ qschannelbackend “ mitliefern.

Das Einbinden mehrerer Backends stellt jedoch kein Problem dar. Qt versucht, die Backends der Reihe nach zu laden (wobei OpenSSL zuerst versucht wird), bis eines erfolgreich geladen wurde. Die anderen Backends bleiben dann ungenutzt.

Datagram Transport Layer Security

Datagram Transport Layer Security (DTLS) ist ein Protokoll, das Sicherheit für datagrammbasierte Anwendungen gewährleistet und diese vor Abhören, Manipulation oder Nachrichtenfälschung schützt. Das DTLS-Protokoll basiert auf dem strömenorientierten Transport Layer Security (TLS)-Protokoll. „ QtNetwork “ ermöglicht die Verwendung von DTLS mit dem User Datagram Protocol (UDP), wie in RFC 6347 definiert.

Import- und Exportbeschränkungen

Für bestimmte Arten von Software sowie in bestimmten Teilen der Welt gelten Import- und Exportbeschränkungen. Entwickler, die SSL-Kommunikation in ihren bereitgestellten Anwendungen nutzen möchten, sollten entweder sicherstellen, dass ihre Nutzer über die entsprechenden Bibliotheken verfügen, oder sie sollten einen entsprechend qualifizierten Rechtsberater hinzuziehen, um sicherzustellen, dass Anwendungen, die Code aus dem OpenSSL-Projekt verwenden, für den Import und Export in den relevanten Regionen der Welt ordnungsgemäß zertifiziert sind.

Weitere Informationen finden Sie unter „Exportkontrolle des Qt-Frameworks und der Qt-Tools “.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.