Sur cette page

QSslCertificate Class

La classe `QSslCertificate` fournit une API pratique pour gérer un certificat X.509. En savoir plus...

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 couramment utilisé pour vérifier l’identité et stocker des informations concernant l’hôte local, un pair connecté à distance ou une autorité de certification tierce de confiance.

Il existe plusieurs façons de créer un QSslCertificate. La méthode la plus courante consiste à appeler la fonction ` QSslSocket::peerCertificate()` (qui renvoie un objet `QSslCertificate`) ou ` QSslSocket::peerCertificateChain()` (qui renvoie une liste de ces objets). Vous pouvez également charger des certificats à partir d’un ensemble encodé au format DER (binaire) ou PEM (Base64), généralement stocké sous la forme d’un ou plusieurs fichiers locaux, ou dans une ressource Qt.

Vous pouvez appeler la méthode ` isNull()` pour vérifier si votre certificat est nul. Par défaut, `QSslCertificate` crée un certificat nul. Un certificat nul n’est pas valide, mais un certificat non valide n’est pas nécessairement nul. Si vous souhaitez réinitialiser tout le contenu d’un certificat, appelez la méthode ` 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 la date de prise d’effet et la date d’expiration du certificat. La fonction publicKey() renvoie la clé publique du sujet du certificat sous la forme d’un objet 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 à ce descripteur en appelant handle(), mais les résultats risquent de ne pas être portables.

Voir également 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 correspondance de motifs riche, similaire à celle de Perl.
QSslCertificate::PatternSyntax::Wildcard1Cela fournit une syntaxe de correspondance de motifs simple, similaire à celle utilisée par les shells (interpréteurs de commandes) pour le « file globbing ». Voir QRegularExpression::fromWildcard().
QSslCertificate::PatternSyntax::FixedString2Le motif est une chaîne fixe. Cela revient à utiliser le motif RegularExpression sur une chaîne dans laquelle tous les métacaractères sont échappés à l'aide de la fonction escape(). C'est le comportement par défaut.

enum QSslCertificate::SubjectInfo

Décrit les clés que vous pouvez transmettre aux méthodes 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 ; il est le plus souvent utilisé pour stocker le nom d’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 e-mail associée au certificat

Documentation relative aux fonctions membres

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

Crée un objet `QSslCertificate` en lisant les données encodées au format ` format ` à partir du fichier ` device ` et en utilisant le premier certificat trouvé. Vous pouvez ensuite appeler la méthode ` isNull()` pour vérifier si le fichier ` device ` contenait un certificat et si ce dernier a bien été chargé.

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

Crée un objet `QSslCertificate` en analysant le fichier format (au format ` data `) et en utilisant le premier certificat disponible trouvé. Vous pouvez ensuite appeler la méthode ` isNull()` pour vérifier si le fichier data contenait un certificat et si celui-ci a bien été chargé.

QSslCertificate::QSslCertificate(const QSslCertificate &other)

Crée une copie identique de other.

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

La fonction `move` construit un nouveau `QSslCertificate` à partir de ` other`.

Remarque : l'objet d'origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'affectation d'une nouvelle valeur.

Cette fonction a été introduite dans Qt 6.8.

[noexcept] QSslCertificate::~QSslCertificate()

Supprime l'QSslCertificate.

void QSslCertificate::clear()

Efface le contenu de ce certificat, ce qui en fait un certificat nul.

Voir également isNull().

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

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

QDateTime QSslCertificate::effectiveDate() const

Renvoie la date et l'heure auxquelles le certificat devient valide, ou un objet ` QDateTime ` vide s'il s'agit d'un certificat nul.

Voir également expiryDate().

QDateTime QSslCertificate::expiryDate() const

Renvoie la date et l'heure d'expiration du certificat, ou un objet « QDateTime » vide s'il s'agit d'un certificat nul.

Voir également effectiveDate().

QList<QSslCertificateExtension> QSslCertificate::extensions() const

Renvoie une liste contenant les extensions X.509 de ce certificat.

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

Cette fonction recherche et analyse tous les certificats du répertoire data qui sont encodés selon le format spécifié format, puis les renvoie sous la forme d'une liste de certificats.

Voir également fromDevice().

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

Cette fonction recherche et analyse tous les certificats présents dans ` device ` qui sont encodés selon le format spécifié ` format `, puis les renvoie sous la forme d'une liste de certificats.

Voir également fromData().

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

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

Si ` filePath ` n'est pas un fichier ordinaire, cette méthode renvoie une liste vide.

Cette fonction a été introduite dans Qt 6.10.

Voir également fromData() et fromPath().

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

Recherche tous les fichiers du répertoire « path » contenant des certificats encodés au format spécifié dans « format » et les renvoie sous forme de liste. « path » doit être un fichier ou un motif correspondant à un ou plusieurs fichiers, tel que 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 également fromData().

Qt::HANDLE QSslCertificate::handle() const

Renvoie un pointeur vers le descripteur natif du certificat, s'il existe, sinon ` nullptr`.

Vous pouvez utiliser ce descripteur, conjointement avec l’API native, pour accéder à des informations détaillées sur le certificat.

Avertissement : l'utilisation de cette fonction présente un risque élevé de non-portabilité, et sa valeur de retour peut varier d'une plate-forme à 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 de l'device spécifiée. Un fichier PKCS#12 est un ensemble pouvant contenir plusieurs certificats et clés. Cette méthode lit dans l'ensemble un seul key, son certificate et tout caCertificates associé. Si un passPhrase est spécifié, celui-ci sera utilisé pour déchiffrer l'ensemble. Renvoie ` true ` si le fichier PKCS#12 a été chargé avec succès.

Remarque : le fichier « device » doit être ouvert et prêt à être lu.

bool QSslCertificate::isBlacklisted() const

Renvoie « true » si ce certificat figure sur la liste noire ; sinon, renvoie « false ».

Voir également isNull().

bool QSslCertificate::isNull() const

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

Par défaut, ` QSslCertificate ` crée un certificat nul.

Voir également clear().

bool QSslCertificate::isSelfSigned() const

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

Un certificat est considéré comme auto-signé lorsque son émetteur et son sujet sont identiques.

QString QSslCertificate::issuerDisplayName() const

Renvoie un nom décrivant l'émetteur. Elle renvoie l'adresse QSslCertificate::CommonName si celle-ci est disponible ; sinon, elle utilise par défaut la première adresse QSslCertificate::Organization ou la première adresse QSslCertificate::OrganizationalUnitName.

Voir également issuerInfo().

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

Renvoie les informations relatives à l'émetteur pour l'subject à partir du certificat, ou une liste vide s'il n'y a pas d'informations concernant l'subject dans le certificat. Il peut y avoir plusieurs entrées de chaque type.

Voir également subjectInfo().

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

Renvoie les informations relatives à l'émetteur pour l'attribut « attribute » issues du certificat, ou une liste vide si le certificat ne contient aucune information concernant l'attribut « attribute ». Il peut y avoir plusieurs entrées pour un même attribut.

Voir également 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 via la méthode issuerInfo(). Notez que cette liste peut inclure les OID d'éléments inconnus du backend SSL.

Voir également subjectInfo().

QSslKey QSslCertificate::publicKey() const

Renvoie la clé publique du sujet du certificat.

QByteArray QSslCertificate::serialNumber() const

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

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

Renvoie la liste des noms d'entité alternatifs associés à ce certificat. Les noms alternatifs contiennent généralement des noms d'hôte, pouvant éventuellement comporter des caractères génériques, qui sont valides pour ce certificat.

Ces noms sont comparés au nom d’hôte du pair connecté, soit si les informations relatives au sujet pour CommonName ne définissent pas de nom d’hôte valide, soit si le nom figurant dans les informations relatives au sujet ne correspond pas au nom d’hôte du pair.

Voir également subjectInfo().

QString QSslCertificate::subjectDisplayName() const

Renvoie un nom décrivant le sujet. Elle renvoie l'adresse QSslCertificate::CommonName si celle-ci est disponible ; sinon, elle utilise par défaut 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 à l'subject, ou une liste vide s'il n'y a pas d'informations concernant subject dans le certificat. Il peut y avoir plusieurs entrées de chaque type.

Voir également issuerInfo().

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

Renvoie les informations relatives à l'entité pour attribute, ou une liste vide s'il n'y a aucune information concernant attribute dans le certificat. Il peut y avoir plusieurs entrées pour un même attribut.

Voir aussi issuerInfo().

QList<QByteArray> QSslCertificate::subjectInfoAttributes() const

Renvoie une liste des attributs dont les valeurs figurent dans les informations relatives au sujet de ce certificat. Les informations associées à un attribut donné sont accessibles via la méthode subjectInfo(). Notez que cette liste peut inclure les OID d'éléments non reconnus par le backend SSL.

Voir également subjectInfo().

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

Remplace cette instance de certificat par celle de other. Cette opération est très rapide et ne rencontre jamais d'échec.

QByteArray QSslCertificate::toDer() const

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

QByteArray QSslCertificate::toPem() const

Renvoie ce certificat converti en une représentation encodée au format PEM (Base64).

QString QSslCertificate::toText() const

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

[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 via le paramètre ` certificateChain `. Le premier certificat de la liste doit être le certificat final (feuille) de la chaîne à vérifier. Si ` hostName ` est spécifié, le certificat est également vérifié afin de s'assurer qu'il est valide pour le nom d'hôte indiqué.

Notez que le certificat racine (CA) ne doit pas être inclus dans la liste à vérifier ; celui-ci sera recherché automatiquement à l’aide de la liste des autorités de certification spécifiée dans le paramètre QSslConfiguration par défaut et, en outre, si possible, à l’aide des certificats d’autorité de certification chargés à la demande sous Unix et Windows.

QByteArray QSslCertificate::version() const

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

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

Renvoie « true » si ce certificat ne correspond pas à « other » ; sinon, renvoie « false ».

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

Copie le contenu de « other » dans ce certificat, rendant ainsi 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.