QSslCertificate Class
Die Klasse „QSslCertificate“ bietet eine komfortable API für ein X.509-Zertifikat. Mehr...
| Header: | #include <QSslCertificate> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QSslCertificate ist Teil der Netzwerkprogrammier-API und der implizit gemeinsam genutzten Klassen.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Typen
| enum class | PatternSyntax { RegularExpression, Wildcard, FixedString } |
| enum | SubjectInfo { Organization, CommonName, LocalityName, OrganizationalUnitName, CountryName, …, EmailAddress } |
Öffentliche Funktionen
| QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem) | |
| QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem) | |
| QSslCertificate(const QSslCertificate &other) | |
(since 6.8) | QSslCertificate(QSslCertificate &&other) |
| ~QSslCertificate() | |
| void | clear() |
| QByteArray | digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const |
| QDateTime | effectiveDate() const |
| QDateTime | expiryDate() const |
| QList<QSslCertificateExtension> | extensions() const |
| Qt::HANDLE | handle() const |
| bool | isBlacklisted() const |
| bool | isNull() const |
| bool | isSelfSigned() const |
| QString | issuerDisplayName() const |
| QStringList | issuerInfo(QSslCertificate::SubjectInfo subject) const |
| QStringList | issuerInfo(const QByteArray &attribute) const |
| QList<QByteArray> | issuerInfoAttributes() const |
| QSslKey | publicKey() const |
| QByteArray | serialNumber() const |
| QMultiMap<QSsl::AlternativeNameEntryType, QString> | subjectAlternativeNames() const |
| QString | subjectDisplayName() const |
| QStringList | subjectInfo(QSslCertificate::SubjectInfo subject) const |
| QStringList | subjectInfo(const QByteArray &attribute) const |
| QList<QByteArray> | subjectInfoAttributes() const |
| void | swap(QSslCertificate &other) |
| QByteArray | toDer() const |
| QByteArray | toPem() const |
| QString | toText() const |
| QByteArray | version() const |
| bool | operator!=(const QSslCertificate &other) const |
| QSslCertificate & | operator=(const QSslCertificate &other) |
| bool | operator==(const QSslCertificate &other) const |
Statische öffentliche Mitglieder
| QList<QSslCertificate> | fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem) |
| QList<QSslCertificate> | fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem) |
(since 6.10) QList<QSslCertificate> | fromFile(const QString &filePath, QSsl::EncodingFormat format = QSsl::Pem) |
| QList<QSslCertificate> | fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = PatternSyntax::FixedString) |
| bool | importPkcs12(QIODevice *device, QSslKey *key, QSslCertificate *certificate, QList<QSslCertificate> *caCertificates = nullptr, const QByteArray &passPhrase = QByteArray()) |
| QList<QSslError> | verify(const QList<QSslCertificate> &certificateChain, const QString &hostName = QString()) |
Ausführliche Beschreibung
QSslCertificate speichert ein X509-Zertifikat und wird üblicherweise zur Überprüfung der Identität und zum Speichern von Informationen über den lokalen Host, einen remote verbundenen Peer oder eine vertrauenswürdige externe Zertifizierungsstelle verwendet.
Es gibt viele Möglichkeiten, ein `QSslCertificate` zu erstellen. Am häufigsten wird die Funktion ` QSslSocket::peerCertificate()` aufgerufen, die ein `QSslCertificate`-Objekt zurückgibt, oder die Funktion ` QSslSocket::peerCertificateChain()`, die eine Liste dieser Objekte zurückgibt. Sie können Zertifikate auch aus einem DER- (binär) oder PEM- (Base64) kodierten Bündel laden, das in der Regel als eine oder mehrere lokale Dateien oder in einer Qt-Ressource gespeichert ist.
Mit dem Aufruf von ` isNull()` kannst du überprüfen, ob dein Zertifikat null ist. Standardmäßig erstellt `QSslCertificate` ein Null-Zertifikat. Ein Null-Zertifikat ist ungültig, aber ein ungültiges Zertifikat ist nicht zwangsläufig null. Wenn du den gesamten Inhalt eines Zertifikats zurücksetzen möchtest, rufe ` clear()` auf.
Nach dem Laden eines Zertifikats können Sie Informationen über das Zertifikat, dessen Betreff und dessen Aussteller abrufen, indem Sie eine der zahlreichen Zugriffsfunktionen aufrufen, darunter ` version()`, ` serialNumber()`, ` issuerInfo()` und ` subjectInfo()`. Mit den Funktionen ` effectiveDate()` und ` expiryDate()` können Sie überprüfen, wann das Zertifikat gültig wird und wann es abläuft. Die Funktion „ publicKey()“ gibt den öffentlichen Schlüssel des Zertifikatsinhabers als „ QSslKey “ zurück. Mit den Aufrufen „ issuerInfo()“ oder „ subjectInfo()“ können Sie detaillierte Informationen über den Zertifikatsaussteller und dessen Inhaber abrufen.
Intern wird `QSslCertificate` als X509-Struktur gespeichert. Sie können auf dieses Handle zugreifen, indem Sie ` handle()` aufrufen, allerdings sind die Ergebnisse wahrscheinlich nicht portierbar.
Siehe auch QSslSocket, QSslKey, QSslCipher und QSslError.
Dokumentation zu Mitgliedstypen
enum class QSslCertificate::PatternSyntax
Die Syntax, die zur Interpretation der Bedeutung des Musters verwendet wird.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSslCertificate::PatternSyntax::RegularExpression | 0 | Eine umfangreiche, Perl-ähnliche Syntax für den Musterabgleich. |
QSslCertificate::PatternSyntax::Wildcard | 1 | Dies bietet eine einfache Syntax für den Musterabgleich, ähnlich derjenigen, die von Shells (Befehlsinterpretern) für das „Datei-Globbing“ verwendet wird. Siehe QRegularExpression::fromWildcard(). |
QSslCertificate::PatternSyntax::FixedString | 2 | Das Muster ist eine feste Zeichenkette. Dies entspricht der Verwendung des Musters „RegularExpression“ auf eine Zeichenkette, in der alle Metazeichen mit `escape()` maskiert sind. Dies ist die Standardeinstellung. |
enum QSslCertificate::SubjectInfo
Beschreibt Schlüssel, die Sie an „ QSslCertificate::issuerInfo()“ oder „ QSslCertificate::subjectInfo()“ übergeben können, um Informationen über den Zertifikatsaussteller oder den Zertifikatsinhaber abzurufen.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSslCertificate::Organization | 0 | „O“ Der Name der Organisation. |
QSslCertificate::CommonName | 1 | „CN“ Der allgemeine Name; meist wird hier der Hostname gespeichert. |
QSslCertificate::LocalityName | 2 | „L“ Der Standort. |
QSslCertificate::OrganizationalUnitName | 3 | „OU“ Der Name der Organisationseinheit. |
QSslCertificate::CountryName | 4 | „C“ Das Land. |
QSslCertificate::StateOrProvinceName | 5 | „ST“ – Das Bundesland oder die Provinz. |
QSslCertificate::DistinguishedNameQualifier | 6 | Der Qualifizierer des Distinguished Name |
QSslCertificate::SerialNumber | 7 | Die Seriennummer des Zertifikats |
QSslCertificate::EmailAddress | 8 | Die mit dem Zertifikat verknüpfte E-Mail-Adresse |
Dokumentation der Mitgliedsfunktionen
[explicit] QSslCertificate::QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
Erstellt ein `QSslCertificate`, indem es die in ` format ` kodierten Daten aus ` device ` liest und das erste gefundene Zertifikat verwendet. Sie können später die Methode ` isNull()` aufrufen, um zu überprüfen, ob ` device ` ein Zertifikat enthielt und ob dieses Zertifikat erfolgreich geladen wurde.
[explicit] QSslCertificate::QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem)
Erstellt ein `QSslCertificate`, indem die als ` format ` kodierte Datei ` data ` geparst und das erste verfügbare Zertifikat verwendet wird. Sie können später die Methode ` isNull()` aufrufen, um zu prüfen, ob die Datei ` data ` ein Zertifikat enthielt und ob dieses Zertifikat erfolgreich geladen wurde.
QSslCertificate::QSslCertificate(const QSslCertificate &other)
Erstellt eine identische Kopie von „ other “.
[constexpr noexcept default, since 6.8] QSslCertificate::QSslCertificate(QSslCertificate &&other)
Erstellt ein neues QSslCertificate aus other.
Hinweis: Das Objekt „ other “, aus dem die Verschiebung erfolgt ist, befindet sich in einem teilweise initialisierten Zustand, in dem nur die Destruktion und die Zuweisung eines neuen Werts zulässig sind.
Diese Funktion wurde in Qt 6.8 eingeführt.
[noexcept] QSslCertificate::~QSslCertificate()
Zerstört die „ QSslCertificate “.
void QSslCertificate::clear()
Löscht den Inhalt dieses Zertifikats, wodurch es zu einem Nullzertifikat wird.
Siehe auch isNull().
QByteArray QSslCertificate::digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const
Gibt einen kryptografischen Hash dieses Zertifikats zurück. Standardmäßig wird ein MD5-Hash generiert, Sie können jedoch auch einen benutzerdefinierten Hash angeben: algorithm.
QDateTime QSslCertificate::effectiveDate() const
Gibt das Datums- und Zeitangabe zurück, zu der das Zertifikat gültig wird, oder ein leeres „ QDateTime “, falls es sich um ein Null-Zertifikat handelt.
Siehe auch expiryDate().
QDateTime QSslCertificate::expiryDate() const
Gibt das Datum und die Uhrzeit zurück, zu denen das Zertifikat abläuft, oder ein leeres „ QDateTime “, wenn es sich um ein Null-Zertifikat handelt.
Siehe auch effectiveDate().
QList<QSslCertificateExtension> QSslCertificate::extensions() const
Gibt eine Liste zurück, die die X.509-Erweiterungen dieses Zertifikats enthält.
[static] QList<QSslCertificate> QSslCertificate::fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem)
Sucht alle Zertifikate in „ data “, die im angegebenen Format „ format “ kodiert sind, analysiert sie und gibt sie in einer Liste von Zertifikaten zurück.
Siehe auch fromDevice().
[static] QList<QSslCertificate> QSslCertificate::fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
Sucht alle Zertifikate unter device, die im angegebenen Format „ format “ kodiert sind, analysiert sie und gibt sie in einer Liste von Zertifikaten zurück.
Siehe auch fromData().
[static, since 6.10] QList<QSslCertificate> QSslCertificate::fromFile(const QString &filePath, QSsl::EncodingFormat format = QSsl::Pem)
Liest die Daten aus der Datei „ filePath “, analysiert alle Zertifikate, die im angegebenen „ format “ kodiert sind, und gibt eine Liste von „ QSslCertificate “-Objekten zurück.
Wenn „ filePath “ keine reguläre Datei ist, gibt diese Methode eine leere Liste zurück.
Diese Funktion wurde in Qt 6.10 eingeführt.
Siehe auch fromData() und fromPath().
[static] QList<QSslCertificate> QSslCertificate::fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = PatternSyntax::FixedString)
Durchsucht alle Dateien im Verzeichnis „ path “ nach Zertifikaten, die im angegebenen „ format “ kodiert sind, und gibt diese in einer Liste zurück. „ path “ muss eine Datei oder ein Muster sein, das mit einer oder mehreren Dateien übereinstimmt, wie unter „ syntax “ angegeben.
Beispiel:
const auto certs = QSslCertificate::fromPath("C:/ssl/certificate.*.pem",
QSsl::Pem, QSslCertificate::Wildcard);
for (const QSslCertificate&cert: certs) {
qDebug() << cert.issuerInfo(QSslCertificate::Organization);
}Siehe auch fromData().
Qt::HANDLE QSslCertificate::handle() const
Gibt einen Zeiger auf das native Zertifikats-Handle zurück, sofern vorhanden; andernfalls „ nullptr “.
Sie können dieses Handle zusammen mit der nativen API verwenden, um auf erweiterte Informationen zum Zertifikat zuzugreifen.
Warnung: Die Verwendung dieser Funktion ist mit hoher Wahrscheinlichkeit nicht portabel, und ihr Rückgabewert kann je nach Plattform variieren oder sich von Minor-Release zu Minor-Release ändern.
[static] bool QSslCertificate::importPkcs12(QIODevice *device, QSslKey *key, QSslCertificate *certificate, QList<QSslCertificate> *caCertificates = nullptr, const QByteArray &passPhrase = QByteArray())
Importiert eine PKCS#12-Datei (pfx) aus dem angegebenen „ device “. Eine PKCS#12-Datei ist ein Bündel, das mehrere Zertifikate und Schlüssel enthalten kann. Diese Methode liest ein einzelnes „ key “, dessen „ certificate “ sowie alle zugehörigen „ caCertificates “ aus dem Bündel aus. Wenn ein „ passPhrase “ angegeben wird, wird dieser zum Entschlüsseln des Bündels verwendet. Gibt „ true “ zurück, wenn die PKCS#12-Datei erfolgreich geladen wurde.
Hinweis: Die Datei „ device “ muss geöffnet und zum Lesen bereit sein.
bool QSslCertificate::isBlacklisted() const
Gibt „ true “ zurück, wenn dieses Zertifikat auf der Sperrliste steht; andernfalls wird „ false “ zurückgegeben.
Siehe auch isNull().
bool QSslCertificate::isNull() const
Gibt „ true “ zurück, wenn es sich um ein Null-Zertifikat handelt (d. h. ein Zertifikat ohne Inhalt); andernfalls wird „ false “ zurückgegeben.
Standardmäßig erstellt „ QSslCertificate “ ein Null-Zertifikat.
Siehe auch clear().
bool QSslCertificate::isSelfSigned() const
Gibt „ true “ zurück, wenn dieses Zertifikat selbstsigniert ist; andernfalls gibt es „ false “ zurück.
Ein Zertifikat gilt als selbstsigniert, wenn sein Aussteller und sein Betreff identisch sind.
QString QSslCertificate::issuerDisplayName() const
Gibt einen Namen zurück, der den Emittenten beschreibt. Es wird die „ QSslCertificate::CommonName “ zurückgegeben, sofern verfügbar; andernfalls wird auf die erste „ QSslCertificate::Organization “ oder die erste „ QSslCertificate::OrganizationalUnitName “ zurückgegriffen.
Siehe auch issuerInfo().
QStringList QSslCertificate::issuerInfo(QSslCertificate::SubjectInfo subject) const
Gibt die Ausstellerinformationen für „ subject “ aus dem Zertifikat zurück oder eine leere Liste, wenn im Zertifikat keine Informationen zu „ subject “ vorhanden sind. Es kann mehr als einen Eintrag pro Typ geben.
Siehe auch „ subjectInfo()“.
QStringList QSslCertificate::issuerInfo(const QByteArray &attribute) const
Gibt die Ausstellerinformationen für „ attribute “ aus dem Zertifikat zurück oder eine leere Liste, wenn im Zertifikat keine Informationen für „ attribute “ vorhanden sind. Für ein Attribut kann es mehrere Einträge geben.
Siehe auch subjectInfo().
QList<QByteArray> QSslCertificate::issuerInfoAttributes() const
Gibt eine Liste der Attribute zurück, für die in den Ausstellerinformationen dieses Zertifikats Werte vorhanden sind. Auf die mit einem bestimmten Attribut verknüpften Informationen kann mithilfe der Methode „ issuerInfo()“ zugegriffen werden. Beachten Sie, dass diese Liste möglicherweise OIDs für Elemente enthält, die dem SSL-Backend nicht bekannt sind.
Siehe auch ` subjectInfo()`.
QSslKey QSslCertificate::publicKey() const
Gibt den öffentlichen Schlüssel des Zertifikatsinhabers zurück.
QByteArray QSslCertificate::serialNumber() const
Gibt die Seriennummer des Zertifikats als Zeichenfolge im Hexadezimalformat zurück.
QMultiMap<QSsl::AlternativeNameEntryType, QString> QSslCertificate::subjectAlternativeNames() const
Gibt die Liste der alternativen Betreffnamen für dieses Zertifikat zurück. Die alternativen Namen enthalten in der Regel Hostnamen, optional mit Platzhaltern, die für dieses Zertifikat gültig sind.
Diese Namen werden mit dem Hostnamen des verbundenen Gegenübers abgeglichen, wenn entweder in den Subjektinformationen für CommonName kein gültiger Hostname definiert ist oder der Name in den Subjektinformationen nicht mit dem Hostnamen des Gegenübers übereinstimmt.
Siehe auch subjectInfo().
QString QSslCertificate::subjectDisplayName() const
Gibt einen Namen zurück, der das Thema beschreibt. Es wird der „ QSslCertificate::CommonName “ zurückgegeben, sofern verfügbar; andernfalls wird auf den ersten „ QSslCertificate::Organization “ oder den ersten „ QSslCertificate::OrganizationalUnitName “ zurückgegriffen.
Siehe auch subjectInfo().
QStringList QSslCertificate::subjectInfo(QSslCertificate::SubjectInfo subject) const
Gibt die Informationen für die „ subject “ zurück oder eine leere Liste, wenn im Zertifikat keine Informationen für „ subject “ vorhanden sind. Es kann mehr als einen Eintrag pro Typ geben.
Siehe auch issuerInfo().
QStringList QSslCertificate::subjectInfo(const QByteArray &attribute) const
Gibt die Informationen zum Subjekt für „ attribute “ zurück oder eine leere Liste, wenn im Zertifikat keine Informationen für „ attribute “ vorhanden sind. Für ein Attribut kann es mehrere Einträge geben.
Siehe auch issuerInfo().
QList<QByteArray> QSslCertificate::subjectInfoAttributes() const
Gibt eine Liste der Attribute zurück, für die in den Betreffendeninformationen dieses Zertifikats Werte vorhanden sind. Auf die mit einem bestimmten Attribut verknüpften Informationen kann über die Methode „ subjectInfo()“ zugegriffen werden. Beachten Sie, dass diese Liste möglicherweise OIDs für Elemente enthält, die dem SSL-Backend nicht bekannt sind.
Siehe auch ` subjectInfo()`.
[noexcept] void QSslCertificate::swap(QSslCertificate &other)
Ersetzt diese Zertifikatsinstanz durch „ other “. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
QByteArray QSslCertificate::toDer() const
Gibt dieses Zertifikat in einer in DER (binär) kodierten Darstellung zurück.
QByteArray QSslCertificate::toPem() const
Gibt dieses Zertifikat in einer in PEM (Base64) kodierten Darstellung zurück.
QString QSslCertificate::toText() const
Gibt dieses Zertifikat in einer für Menschen lesbaren Textdarstellung zurück.
[static] QList<QSslError> QSslCertificate::verify(const QList<QSslCertificate> &certificateChain, const QString &hostName = QString())
Überprüft eine Zertifikatskette. Die zu überprüfende Kette wird über den Parameter „ certificateChain “ übergeben. Das erste Zertifikat in der Liste sollte das Endzertifikat der zu überprüfenden Kette sein. Wenn „ hostName “ angegeben ist, wird zusätzlich geprüft, ob das Zertifikat für den angegebenen Hostnamen gültig ist.
Beachten Sie, dass das Stammzertifikat (CA-Zertifikat) nicht in der zu überprüfenden Liste enthalten sein sollte; dieses wird automatisch anhand der in der Standard- QSslConfiguration angegebenen CA-Liste sowie, sofern möglich, anhand der unter Unix und Windows bei Bedarf geladenen CA-Zertifikate ermittelt.
QByteArray QSslCertificate::version() const
Gibt die Versionszeichenfolge des Zertifikats zurück.
bool QSslCertificate::operator!=(const QSslCertificate &other) const
Gibt „ true “ zurück, wenn dieses Zertifikat nicht mit „ other “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.
QSslCertificate &QSslCertificate::operator=(const QSslCertificate &other)
Kopiert den Inhalt von „ other “ in dieses Zertifikat, sodass beide Zertifikate identisch sind.
bool QSslCertificate::operator==(const QSslCertificate &other) const
Gibt „ true “ zurück, wenn dieses Zertifikat mit „ other “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.
© 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.