Sur cette page

QSslCertificate Class

La classe QSslCertificate fournit une API pratique pour un certificat X509. Plus d'informations...

En-tête : #include <QSslCertificate>
CMake : find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake : QT += network

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

enum class PatternSyntax { RegularExpression, Wildcard, FixedString }
enum SubjectInfo { Organization, CommonName, LocalityName, OrganizationalUnitName, CountryName, …, EmailAddress }

Fonctions publiques

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

Membres publics statiques

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())

Description détaillée

QSslCertificate stocke un certificat X509 et est généralement utilisé pour vérifier l'identité et stocker des informations sur l'hôte local, un pair connecté à distance ou une autorité de certification tierce de confiance.

Il existe de nombreuses façons de construire un QSslCertificate. La plus courante consiste à appeler QSslSocket::peerCertificate(), qui renvoie un objet QSslCertificate, ou QSslSocket::peerCertificateChain(), qui en renvoie une liste. Vous pouvez également charger des certificats à partir d'un paquet encodé en DER (binaire) ou en PEM (Base64), généralement stocké dans un ou plusieurs fichiers locaux, ou dans une ressource Qt.

Vous pouvez appeler isNull() pour vérifier si votre certificat est nul. Par défaut, QSslCertificate construit un certificat nul. Un certificat nul est invalide, mais un certificat invalide n'est pas nécessairement nul. Si vous voulez réinitialiser tout le contenu d'un certificat, appelez clear().

Après avoir chargé un certificat, vous pouvez obtenir des informations sur le certificat, son sujet et son émetteur en appelant l'une des nombreuses fonctions d'accès, notamment version(), serialNumber(), issuerInfo() et subjectInfo(). Vous pouvez appeler effectiveDate() et expiryDate() pour vérifier quand le certificat commence à être effectif et quand il expire. La fonction publicKey() renvoie la clé publique du sujet du certificat sous forme de QSslKey. Vous pouvez appeler issuerInfo() ou subjectInfo() pour obtenir des informations détaillées sur l'émetteur du certificat et son sujet.

En interne, QSslCertificate est stocké sous la forme d'une structure X509. Vous pouvez accéder à cette structure en appelant handle(), mais les résultats ne seront probablement pas portables.

Voir aussi QSslSocket, QSslKey, QSslCipher, et QSslError.

Documentation sur les types de membres

enum class QSslCertificate::PatternSyntax

La syntaxe utilisée pour interpréter la signification du motif.

ConstanteValeurDescription
QSslCertificate::PatternSyntax::RegularExpression0Une syntaxe de filtrage riche de type Perl.
QSslCertificate::PatternSyntax::Wildcard1Il s'agit d'une syntaxe simple de recherche de motifs similaire à celle utilisée par les shells (interpréteurs de commandes) pour la "globalisation de fichiers". Voir QRegularExpression::fromWildcard().
QSslCertificate::PatternSyntax::FixedString2Le motif est une chaîne fixe. Cela équivaut à utiliser le motif RegularExpression sur une chaîne de caractères dans laquelle tous les métacaractères sont échappés à l'aide de escape(). Il s'agit de la valeur par défaut.

enum QSslCertificate::SubjectInfo

Décrit les clés que vous pouvez passer à QSslCertificate::issuerInfo() ou QSslCertificate::subjectInfo() pour obtenir des informations sur l'émetteur ou le sujet du certificat.

ConstanteValeurDescription
QSslCertificate::Organization0"O" Nom de l'organisation.
QSslCertificate::CommonName1"CN" Le nom commun ; le plus souvent, il est utilisé pour stocker le nom de l'hôte.
QSslCertificate::LocalityName2"L" La localité.
QSslCertificate::OrganizationalUnitName3"OU" Le nom de l'unité organisationnelle.
QSslCertificate::CountryName4"C" Le pays.
QSslCertificate::StateOrProvinceName5"ST" L'état ou la province.
QSslCertificate::DistinguishedNameQualifier6Le qualificatif du nom distinctif
QSslCertificate::SerialNumber7Le numéro de série du certificat
QSslCertificate::EmailAddress8L'adresse électronique associée au certificat

Documentation des fonctions membres

[explicit] QSslCertificate::QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)

Construit un QSslCertificate en lisant les données encodées format à partir de device et en utilisant le premier certificat trouvé. Vous pouvez ensuite appeler isNull() pour savoir si device contient un certificat et si ce certificat a été chargé avec succès.

[explicit] QSslCertificate::QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem)

Construit un QSslCertificate en analysant le code format encodé data et en utilisant le premier certificat disponible trouvé. Vous pouvez ultérieurement appeler isNull() pour voir si data contient un certificat et si ce certificat a été chargé avec succès.

QSslCertificate::QSslCertificate(const QSslCertificate &other)

Construit une copie identique de other.

[constexpr noexcept, since 6.8] QSslCertificate::QSslCertificate(QSslCertificate &&other)

Move-construit un nouveau QSslCertificate à partir de other.

Note : L'objet move-from other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont les destructions et l'assignation d'une nouvelle valeur.

Cette fonction a été introduite dans Qt 6.8.

[noexcept] QSslCertificate::~QSslCertificate()

Détruit le site QSslCertificate.

void QSslCertificate::clear()

Efface le contenu de ce certificat et en fait un certificat nul.

Voir aussi isNull().

QByteArray QSslCertificate::digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const

Renvoie un condensé cryptographique de ce certificat. Par défaut, un condensé MD5 sera généré, mais vous pouvez également spécifier un condensé personnalisé algorithm.

QDateTime QSslCertificate::effectiveDate() const

Renvoie la date à laquelle le certificat devient valide, ou un QDateTime vide s'il s'agit d'un certificat nul.

Voir aussi expiryDate().

QDateTime QSslCertificate::expiryDate() const

Renvoie la date d'expiration du certificat, ou un QDateTime vide s'il s'agit d'un certificat nul.

Voir aussi effectiveDate().

QList<QSslCertificateExtension> QSslCertificate::extensions() const

Renvoie une liste contenant les extensions X509 de ce certificat.

[static] QList<QSslCertificate> QSslCertificate::fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem)

Recherche et analyse tous les certificats dans data qui sont encodés dans le format spécifié et les renvoie dans une liste de certificats.

Voir aussi fromDevice().

[static] QList<QSslCertificate> QSslCertificate::fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)

Recherche et analyse tous les certificats dans device qui sont encodés dans le format spécifié et les renvoie dans une liste de certificats.

Voir aussi fromData().

[static, since 6.10] QList<QSslCertificate> QSslCertificate::fromFile(const QString &filePath, QSsl::EncodingFormat format = QSsl::Pem)

Lit les données du fichier filePath et analyse tous les certificats qui sont encodés dans le fichier format spécifié et renvoie une liste d'objets QSslCertificate.

Si filePath n'est pas un fichier normal, cette méthode renverra une liste vide.

Cette fonction a été introduite dans Qt 6.10.

Voir aussi fromData() et fromPath().

[static] QList<QSslCertificate> QSslCertificate::fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = PatternSyntax::FixedString)

Recherche dans tous les fichiers du site path les certificats encodés dans le format spécifié format et les renvoie dans une liste. path doit être un fichier ou un motif correspondant à un ou plusieurs fichiers, comme spécifié par syntax.

Exemple :

const auto certs = QSslCertificate::fromPath("C:/ssl/certificate.*.pem", QSsl::Pem, QSslCertificate::Wildcard) ;for(const QSslCertificate &cert: certs) {    qDebug() << cert.issuerInfo(QSslCertificate::Organization);
}

Voir aussi fromData().

Qt::HANDLE QSslCertificate::handle() const

Renvoie un pointeur sur l'identifiant du certificat natif, s'il y en a un, sinon nullptr.

Vous pouvez utiliser cet identifiant, ainsi que l'API native, pour accéder à des informations étendues sur le certificat.

Attention : L'utilisation de cette fonction a une forte probabilité d'être non portable, et sa valeur de retour peut varier d'une plateforme à l'autre ou changer d'une version mineure à l'autre.

[static] bool QSslCertificate::importPkcs12(QIODevice *device, QSslKey *key, QSslCertificate *certificate, QList<QSslCertificate> *caCertificates = nullptr, const QByteArray &passPhrase = QByteArray())

Importe un fichier PKCS#12 (pfx) à partir du site device spécifié. Un fichier PKCS#12 est un paquet qui peut contenir un certain nombre de certificats et de clés. Cette méthode lit un seul key, son certificate et tout caCertificates associé à partir du paquet. Si un passPhrase est spécifié, il sera utilisé pour décrypter l'ensemble. Retourne true si le fichier PKCS#12 a été chargé avec succès.

Remarque : le site device doit être ouvert et prêt à être lu.

bool QSslCertificate::isBlacklisted() const

Renvoie true si ce certificat est sur liste noire ; sinon, renvoie false.

Voir aussi isNull().

bool QSslCertificate::isNull() const

Renvoie true s'il s'agit d'un certificat nul (c'est-à-dire un certificat sans contenu) ; sinon, il renvoie false.

Par défaut, QSslCertificate construit un certificat nul.

Voir aussi clear().

bool QSslCertificate::isSelfSigned() const

Renvoie true si ce certificat est auto-signé, sinon renvoie false.

Un certificat est considéré comme auto-signé si l'émetteur et le sujet sont identiques.

QString QSslCertificate::issuerDisplayName() const

Renvoie un nom qui décrit l'émetteur. Il renvoie l'adresse QSslCertificate::CommonName si elle est disponible, sinon il revient à la première adresse QSslCertificate::Organization ou à la première adresse QSslCertificate::OrganizationalUnitName.

Voir aussi issuerInfo().

QStringList QSslCertificate::issuerInfo(QSslCertificate::SubjectInfo subject) const

Renvoie les informations relatives à l'émetteur du certificat subject, ou une liste vide si le certificat ne contient aucune information sur subject. Il peut y avoir plus d'une entrée de chaque type.

Voir aussi subjectInfo().

QStringList QSslCertificate::issuerInfo(const QByteArray &attribute) const

Renvoie les informations relatives à l'émetteur du certificat pour attribute, ou une liste vide s'il n'y a pas d'informations pour attribute dans le certificat. Il peut y avoir plus d'une entrée pour un attribut.

Voir aussi subjectInfo().

QList<QByteArray> QSslCertificate::issuerInfoAttributes() const

Renvoie une liste des attributs dont les valeurs figurent dans les informations relatives à l'émetteur de ce certificat. Les informations associées à un attribut donné sont accessibles à l'aide de la méthode issuerInfo(). Notez que cette liste peut inclure les OID de tout élément qui n'est pas connu par le backend SSL.

Voir aussi subjectInfo().

QSslKey QSslCertificate::publicKey() const

Renvoie la clé publique du sujet du certificat.

QByteArray QSslCertificate::serialNumber() const

Renvoie la chaîne du numéro de série du certificat au format hexadécimal.

QMultiMap<QSsl::AlternativeNameEntryType, QString> QSslCertificate::subjectAlternativeNames() const

Renvoie la liste des noms de sujets alternatifs pour ce certificat. Les noms alternatifs contiennent généralement des noms d'hôtes, éventuellement avec des caractères génériques, qui sont valides pour ce certificat.

Ces noms sont testés par rapport au nom d'hôte de l'homologue connecté, si les informations sur l'objet de CommonName ne définissent pas un nom d'hôte valide, ou si le nom des informations sur l'objet ne correspond pas au nom d'hôte de l'homologue.

Voir aussi subjectInfo().

QString QSslCertificate::subjectDisplayName() const

Renvoie un nom qui décrit le sujet. Il renvoie l'adresse QSslCertificate::CommonName si elle est disponible, sinon il revient à la première adresse QSslCertificate::Organization ou à la première adresse QSslCertificate::OrganizationalUnitName.

Voir aussi subjectInfo().

QStringList QSslCertificate::subjectInfo(QSslCertificate::SubjectInfo subject) const

Renvoie les informations relatives à subject ou une liste vide si le certificat ne contient pas d'informations relatives à subject. Il peut y avoir plus d'une entrée de chaque type.

Voir aussi issuerInfo().

QStringList QSslCertificate::subjectInfo(const QByteArray &attribute) const

Renvoie les informations relatives à l'objet de attribute ou une liste vide si le certificat ne contient pas d'informations relatives à attribute. Il peut y avoir plus d'une entrée pour un attribut.

Voir aussi issuerInfo().

QList<QByteArray> QSslCertificate::subjectInfoAttributes() const

Renvoie une liste des attributs qui ont des valeurs dans les informations relatives à l'objet de ce certificat. Les informations associées à un attribut donné sont accessibles à l'aide de la méthode subjectInfo(). Notez que cette liste peut inclure les OID de tout élément qui n'est pas connu par le backend SSL.

Voir aussi subjectInfo().

[noexcept] void QSslCertificate::swap(QSslCertificate &other)

Remplace cette instance de certificat par other. Cette opération est très rapide et n'échoue jamais.

QByteArray QSslCertificate::toDer() const

Renvoie ce certificat converti en une représentation codée en DER (binaire).

QByteArray QSslCertificate::toPem() const

Renvoie ce certificat converti en une représentation codée en PEM (Base64).

QString QSslCertificate::toText() const

Renvoie ce certificat converti en une représentation textuelle lisible par l'homme.

[static] QList<QSslError> QSslCertificate::verify(const QList<QSslCertificate> &certificateChain, const QString &hostName = QString())

Vérifie une chaîne de certificats. La chaîne à vérifier est transmise dans le paramètre certificateChain. Le premier certificat de la liste doit être le certificat leaf de la chaîne à vérifier. Si hostName est spécifié, le certificat est également vérifié pour voir s'il est valide pour le nom d'hôte spécifié.

Notez que le certificat racine (CA) ne doit pas être inclus dans la liste à vérifier, car il sera recherché automatiquement à l'aide de la liste CA spécifiée dans l'adresse QSslConfiguration par défaut et, en outre, si possible, des certificats CA chargés à la demande sous Unix et Windows.

QByteArray QSslCertificate::version() const

Renvoie la chaîne de caractères de la version du certificat.

bool QSslCertificate::operator!=(const QSslCertificate &other) const

Renvoie true si ce certificat est différent de other; sinon, renvoie false.

QSslCertificate &QSslCertificate::operator=(const QSslCertificate &other)

Copie le contenu de other dans ce certificat, rendant les deux certificats identiques.

bool QSslCertificate::operator==(const QSslCertificate &other) const

Renvoie true si ce certificat est identique à other; sinon, renvoie false.

© 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.