QSslCertificate Class
Die Klasse QSslCertificate bietet eine praktische API für ein X509-Zertifikat. Mehr...
Kopfzeile: | #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 von Network Programming API und Implicitly Shared Classes.
Hinweis: Alle Funktionen in 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) |
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()) |
Detaillierte Beschreibung
QSslCertificate speichert ein X509-Zertifikat und wird üblicherweise verwendet, um die Identität zu verifizieren und Informationen über den lokalen Host, einen entfernt verbundenen Peer oder eine vertrauenswürdige Zertifizierungsstelle eines Dritten zu speichern.
Es gibt viele Möglichkeiten, ein QSslCertificate zu erstellen. Der gebräuchlichste Weg ist der Aufruf von QSslSocket::peerCertificate(), das ein QSslCertificate-Objekt zurückgibt, oder QSslSocket::peerCertificateChain(), das eine Liste von Zertifikaten zurückgibt. Sie können auch Zertifikate aus einem DER (binär) oder PEM (Base64) kodierten Bündel laden, das typischerweise als eine oder mehrere lokale Dateien oder in einer Qt-Ressource gespeichert ist.
Sie können isNull() aufrufen, um zu prüfen, ob Ihr Zertifikat ungültig ist. Standardmäßig konstruiert QSslCertificate ein Null-Zertifikat. Ein Null-Zertifikat ist ungültig, aber ein ungültiges Zertifikat ist nicht notwendigerweise null. Wenn Sie alle Inhalte eines Zertifikats zurücksetzen wollen, rufen Sie clear() auf.
Nach dem Laden eines Zertifikats können Sie Informationen über das Zertifikat, seinen Betreff und seinen Aussteller abrufen, indem Sie eine der vielen Accessor-Funktionen aufrufen, darunter version(), serialNumber(), issuerInfo() und subjectInfo(). Sie können effectiveDate() und expiryDate() aufrufen, um zu prüfen, ab wann das Zertifikat gültig ist und wann es abläuft. Die Funktion publicKey() gibt den öffentlichen Schlüssel des Zertifikatssubjekts als QSslKey zurück. Sie können issuerInfo() oder subjectInfo() aufrufen, um detaillierte Informationen über den Zertifikatsaussteller und sein Subjekt zu erhalten.
Intern wird QSslCertificate als eine X509-Struktur gespeichert. Sie können auf dieses Handle zugreifen, indem Sie handle() aufrufen, aber die Ergebnisse sind wahrscheinlich nicht portabel.
Siehe auch QSslSocket, QSslKey, QSslCipher, und QSslError.
Dokumentation der Mitgliedstypen
enum class QSslCertificate::PatternSyntax
Die zur Interpretation der Bedeutung des Musters verwendete Syntax.
Konstante | Wert | Beschreibung |
---|---|---|
QSslCertificate::PatternSyntax::RegularExpression | 0 | Eine umfangreiche Perl-ähnliche Syntax für den Mustervergleich. |
QSslCertificate::PatternSyntax::Wildcard | 1 | Sie bietet eine einfache Syntax für den Mustervergleich, ähnlich der, die von Shells (Befehlsinterpretern) für "file 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 Betreff zu erhalten.
Konstante | Wert | Beschreibung |
---|---|---|
QSslCertificate::Organization | 0 | "O" Der Name der Organisation. |
QSslCertificate::CommonName | 1 | "CN" Der allgemeine Name; meist wird dieser verwendet, um den Hostnamen zu speichern. |
QSslCertificate::LocalityName | 2 | "L" Die Örtlichkeit. |
QSslCertificate::OrganizationalUnitName | 3 | "OU" Der Name der Organisationseinheit. |
QSslCertificate::CountryName | 4 | "C" Das Land. |
QSslCertificate::StateOrProvinceName | 5 | "ST" Der Staat oder die Provinz. |
QSslCertificate::DistinguishedNameQualifier | 6 | Der Distinguished Name Qualifier |
QSslCertificate::SerialNumber | 7 | Die Seriennummer des Zertifikats |
QSslCertificate::EmailAddress | 8 | Die mit dem Zertifikat verbundene E-Mail-Adresse |
Dokumentation der Mitgliederfunktionen
[explicit]
QSslCertificate::QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
Konstruiert ein QSslCertificate, indem es format kodierte Daten von device liest und das erste gefundene Zertifikat verwendet. Sie können später isNull() aufrufen, um festzustellen, ob device ein Zertifikat enthält und ob dieses Zertifikat erfolgreich geladen wurde.
[explicit]
QSslCertificate::QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem)
Konstruiert ein QSslCertificate, indem es die format kodierte data analysiert und das erste gefundene Zertifikat verwendet. Sie können später isNull() aufrufen, um zu sehen, ob data ein Zertifikat enthält und ob dieses Zertifikat erfolgreich geladen wurde.
QSslCertificate::QSslCertificate(const QSslCertificate &other)
Konstruiert eine identische Kopie von other.
[noexcept, since 6.8]
QSslCertificate::QSslCertificate(QSslCertificate &&other)
Move-konstruiert ein neues QSslCertificate aus other.
Hinweis: Das verschobene Objekt other wird in einen teilweisen Zustand versetzt, in dem die einzigen gültigen Operationen Zerstörungen und Zuweisungen eines neuen Wertes 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 und macht es zu einem Null-Zertifikat.
Siehe auch isNull().
QByteArray QSslCertificate::digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const
Gibt einen kryptografischen Digest dieses Zertifikats zurück. Standardmäßig wird ein MD5-Digest generiert, Sie können aber auch einen benutzerdefinierten algorithm angeben.
QDateTime QSslCertificate::effectiveDate() const
Gibt den Zeitpunkt zurück, an dem das Zertifikat gültig wird, oder ein leeres QDateTime, wenn es sich um ein Null-Zertifikat handelt.
Siehe auch expiryDate().
QDateTime QSslCertificate::expiryDate() const
Gibt den Zeitpunkt zurück, an dem 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 mit den X509-Erweiterungen dieses Zertifikats zurück.
[static]
QList<QSslCertificate> QSslCertificate::fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem)
Sucht und parst alle Zertifikate in data, die in der angegebenen format kodiert sind, 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 und parst alle Zertifikate in device, die in der angegebenen format kodiert sind, und gibt sie in einer Liste von Zertifikaten zurück.
Siehe auch fromData().
[static]
QList<QSslCertificate> QSslCertificate::fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = PatternSyntax::FixedString)
Durchsucht alle Dateien in path nach Zertifikaten, die im angegebenen format kodiert sind, und gibt sie in einer Liste zurück. path muss eine Datei oder ein Muster sein, das mit einer oder mehreren Dateien übereinstimmt, wie durch 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, falls eines vorhanden ist, andernfalls nullptr
.
Sie können dieses Handle zusammen mit der nativen API verwenden, um auf erweiterte Informationen über das Zertifikat zuzugreifen.
Warnung: Die Verwendung dieser Funktion ist mit hoher Wahrscheinlichkeit nicht portierbar, und ihr Rückgabewert kann von Plattform zu Plattform variieren oder sich von Nebenversion zu Nebenversion ändern.
[static]
bool QSslCertificate::importPkcs12(QIODevice *device, QSslKey *key, QSslCertificate *certificate, QList<QSslCertificate> *caCertificates = nullptr, const QByteArray &passPhrase = QByteArray())
Importiert eine PKCS#12 (pfx)-Datei von der angegebenen device. Eine PKCS#12-Datei ist ein Bundle, das eine Reihe von Zertifikaten und Schlüsseln enthalten kann. Diese Methode liest ein einzelnes key, dessen certificate und alle zugehörigen caCertificates aus dem Bündel. Wenn ein passPhrase angegeben ist, wird dieses zur Entschlüsselung des Bündels verwendet. Gibt true
zurück, wenn die PKCS#12-Datei erfolgreich geladen wurde.
Hinweis: Die device muss geöffnet und zum Lesen bereit sein.
bool QSslCertificate::isBlacklisted() const
Gibt true
zurück, wenn dieses Zertifikat auf der schwarzen Liste 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 konstruiert QSslCertificate ein Null-Zertifikat.
Siehe auch clear().
bool QSslCertificate::isSelfSigned() const
Gibt true
zurück, wenn dieses Zertifikat selbstsigniert ist; andernfalls wird false
zurückgegeben.
Ein Zertifikat gilt als selbstsigniert, wenn Aussteller und Betreff identisch sind.
QString QSslCertificate::issuerDisplayName() const
Gibt einen Namen zurück, der den Emittenten beschreibt. Falls vorhanden, wird QSslCertificate::CommonName zurückgegeben, 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 das Zertifikat keine Informationen für subject enthält. Für jeden Typ kann es mehr als einen Eintrag 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 das Zertifikat keine Informationen für attribute enthält. Es kann mehr als einen Eintrag für ein Attribut geben.
Siehe auch subjectInfo().
QList<QByteArray> QSslCertificate::issuerInfoAttributes() const
Gibt eine Liste der Attribute zurück, die Werte in den Ausstellerinformationen dieses Zertifikats haben. Auf die mit einem bestimmten Attribut verbundenen Informationen kann mit der Methode issuerInfo() zugegriffen werden. Beachten Sie, dass diese Liste die OIDs für alle Elemente enthalten kann, 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 Zeichenfolge der Seriennummer des Zertifikats im Hexadezimalformat zurück.
QMultiMap<QSsl::AlternativeNameEntryType, QString> QSslCertificate::subjectAlternativeNames() const
Gibt die Liste der alternativen Subject-Namen 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 der verbundenen Gegenstelle verglichen, wenn entweder die Subject-Informationen für CommonName keinen gültigen Hostnamen definieren oder der Name der Subject-Info nicht mit dem Hostnamen der Gegenstelle übereinstimmt.
Siehe auch subjectInfo().
QString QSslCertificate::subjectDisplayName() const
Gibt einen Namen zurück, der das Thema beschreibt. Falls vorhanden, wird QSslCertificate::CommonName zurückgegeben, andernfalls wird auf die erste QSslCertificate::Organization oder die erste QSslCertificate::OrganizationalUnitName zurückgegriffen.
Siehe auch subjectInfo().
QStringList QSslCertificate::subjectInfo(QSslCertificate::SubjectInfo subject) const
Gibt die Informationen für subject zurück, oder eine leere Liste, wenn das Zertifikat keine Informationen für subject enthält. Für jeden Typ kann es mehr als einen Eintrag geben.
Siehe auch issuerInfo().
QStringList QSslCertificate::subjectInfo(const QByteArray &attribute) const
Gibt die Betreff-Informationen für attribute zurück, oder eine leere Liste, wenn das Zertifikat keine Informationen für attribute enthält. Es kann mehr als einen Eintrag für ein Attribut geben.
Siehe auch issuerInfo().
QList<QByteArray> QSslCertificate::subjectInfoAttributes() const
Gibt eine Liste der Attribute zurück, die Werte in den Betreffinformationen dieses Zertifikats haben. Auf die mit einem bestimmten Attribut verbundenen Informationen kann mit der Methode subjectInfo() zugegriffen werden. Beachten Sie, dass diese Liste die OIDs für alle Elemente enthalten kann, die dem SSL-Backend nicht bekannt sind.
Siehe auch subjectInfo().
[noexcept]
void QSslCertificate::swap(QSslCertificate &other)
Tauscht diese Zertifikatsinstanz mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
QByteArray QSslCertificate::toDer() const
Gibt dieses Zertifikat in eine DER (binär)-kodierte Darstellung zurück.
QByteArray QSslCertificate::toPem() const
Gibt dieses Zertifikat konvertiert in eine PEM (Base64)-kodierte Darstellung zurück.
QString QSslCertificate::toText() const
Gibt dieses Zertifikat in eine für den Menschen lesbare Textdarstellung umgewandelt 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 mit dem Parameter certificateChain übergeben. Das erste Zertifikat in der Liste sollte das Blattzertifikat der zu überprüfenden Kette sein. Wenn hostName angegeben ist, wird das Zertifikat auch daraufhin überprüft, ob es für den angegebenen Hostnamen gültig ist.
Beachten Sie, dass das Root-Zertifikat (CA-Zertifikat) nicht in die zu überprüfende Liste aufgenommen werden sollte; es wird automatisch anhand der CA-Liste gesucht, die in der Standardeinstellung QSslConfiguration angegeben ist, und zusätzlich, wenn möglich, CA-Zertifikate, die bei Bedarf unter Unix und Windows geladen werden.
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, wodurch die beiden Zertifikate identisch werden.
bool QSslCertificate::operator==(const QSslCertificate &other) const
Gibt true
zurück, wenn dieses Zertifikat mit other identisch ist; andernfalls wird false
zurückgegeben.
© 2025 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.