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.
Diese Klasse bietet Verschlüsselung für UDP-Sockets | |
Diese Klasse implementiert die serverseitige DTLS-Cookie-Generierung und -Überprüfung | |
Diese Klasse definiert Parameter für den DTLS-Cookie-Generator | |
Diese Klasse repräsentiert eine Antwort des Online Certificate Status Protocol | |
Deklariert Enumerationen, die allen SSL-Klassen in Qt Network | |
Praktische API für ein X.509-Zertifikat | |
API für den Zugriff auf die Erweiterungen eines X.509-Zertifikats | |
Stellt eine SSL-Verschlüsselungsalgorithmus dar | |
Enthält die Konfiguration und den Status einer SSL-Verbindung | |
Schnittstelle für Diffie-Hellman-Parameter für Server | |
Stellt eine elliptische Kurve zur Verwendung durch Verschlüsselungsalgorithmen auf Basis elliptischer Kurven dar | |
SSL-Fehler | |
Schnittstelle für private und öffentliche Schlüssel | |
Beschreibt exportiertes Schlüsselmaterial, das aus einer TLS-Sitzung abgeleitet wurde | |
Authentifizierungsdaten für Verschlüsselungssuiten mit vorab geteilten Schlüsseln (PSK) | |
Implementiert einen verschlüsselten, sicheren TCP-Server über TLS | |
SSL-verschlüsselter Socket für Clients und Server | |
Beschreibt die Schwere einer Warnmeldung | |
Zählt mögliche Codes auf, die eine Warnmeldung haben kann | |
Beschreibt den aktuellen Status des DTLS-Handshakes | |
Zählt die Klassen auf, die ein TLS-Backend implementiert | |
Beschreibt Fehler, die von QDtls und QDtlsClientVerifier erkannt werden können | |
Beschreibt den Online-Zertifikatsstatus | |
Beschreibt den Grund für die Sperrung | |
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.