Auf dieser Seite

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

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.

KonstanteWertBeschreibung
QSslCertificate::PatternSyntax::RegularExpression0Eine umfangreiche, Perl-ähnliche Syntax für den Musterabgleich.
QSslCertificate::PatternSyntax::Wildcard1Dies 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::FixedString2Das 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.

KonstanteWertBeschreibung
QSslCertificate::Organization0„O“ Der Name der Organisation.
QSslCertificate::CommonName1„CN“ Der allgemeine Name; meist wird hier der Hostname gespeichert.
QSslCertificate::LocalityName2„L“ Der Standort.
QSslCertificate::OrganizationalUnitName3„OU“ Der Name der Organisationseinheit.
QSslCertificate::CountryName4„C“ Das Land.
QSslCertificate::StateOrProvinceName5„ST“ – Das Bundesland oder die Provinz.
QSslCertificate::DistinguishedNameQualifier6Der Qualifizierer des Distinguished Name
QSslCertificate::SerialNumber7Die Seriennummer des Zertifikats
QSslCertificate::EmailAddress8Die 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.