QSslCertificate Class
La clase QSslCertificate proporciona una práctica API para un certificado X509. Más...
| Cabecera: | #include <QSslCertificate> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network)target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- Lista de todos los miembros, incluyendo los heredados
- QSslCertificate es parte de la API de Programación de Redes y Clases Implícitamente Compartidas.
Nota: Todas las funciones de esta clase son reentrantes.
Tipos Públicos
| enum class | PatternSyntax { RegularExpression, Wildcard, FixedString } |
| enum | SubjectInfo { Organization, CommonName, LocalityName, OrganizationalUnitName, CountryName, …, EmailAddress } |
Funciones Públicas
| 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 |
Miembros Públicos Estáticos
| 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()) |
Descripción Detallada
QSslCertificate almacena un certificado X509, y se utiliza comúnmente para verificar la identidad y almacenar información sobre el host local, un peer conectado remotamente, o una Autoridad de Certificación de terceros de confianza.
Hay muchas formas de construir un QSslCertificate. La forma más común es llamar a QSslSocket::peerCertificate(), que devuelve un objeto QSslCertificate, o a QSslSocket::peerCertificateChain(), que devuelve una lista de ellos. También puede cargar certificados desde un paquete codificado en DER (binario) o PEM (Base64), normalmente almacenado como uno o más archivos locales, o en un Recurso Qt.
Puede llamar a isNull() para comprobar si el certificado es nulo. Por defecto, QSslCertificate construye un certificado nulo. Un certificado nulo es inválido, pero un certificado inválido no es necesariamente nulo. Si desea restablecer todo el contenido de un certificado, llame a clear().
Después de cargar un certificado, puede encontrar información sobre el certificado, su asunto y su emisor llamando a una de las numerosas funciones de acceso, como version(), serialNumber(), issuerInfo() y subjectInfo(). Puede llamar a effectiveDate() y expiryDate() para comprobar cuándo empieza a ser efectivo el certificado y cuándo caduca. La función publicKey() devuelve la clave pública del sujeto del certificado como QSslKey. Puede llamar a issuerInfo() o subjectInfo() para obtener información detallada sobre el emisor del certificado y su sujeto.
Internamente, QSslCertificate se almacena como una estructura X509. Puedes acceder a este manejador llamando a handle(), pero es probable que los resultados no sean portables.
Véase también QSslSocket, QSslKey, QSslCipher, y QSslError.
Documentación de tipos de miembros
enum class QSslCertificate::PatternSyntax
La sintaxis utilizada para interpretar el significado del patrón.
| Constante | Valor | Descripción |
|---|---|---|
QSslCertificate::PatternSyntax::RegularExpression | 0 | Una rica sintaxis de concordancia de patrones tipo Perl. |
QSslCertificate::PatternSyntax::Wildcard | 1 | Proporciona una sintaxis simple de comparación de patrones similar a la utilizada por los shells (intérpretes de comandos) para "file globbing". Véase QRegularExpression::fromWildcard(). |
QSslCertificate::PatternSyntax::FixedString | 2 | El patrón es una cadena fija. Esto es equivalente a utilizar el patrón RegularExpression en una cadena en la que todos los metacaracteres se escapan utilizando escape(). Esta es la opción por defecto. |
enum QSslCertificate::SubjectInfo
Describe las claves que puede pasar a QSslCertificate::issuerInfo() o QSslCertificate::subjectInfo() para obtener información sobre el emisor o el asunto del certificado.
| Constante | Valor | Descripción |
|---|---|---|
QSslCertificate::Organization | 0 | "O" El nombre de la organización. |
QSslCertificate::CommonName | 1 | "CN" El nombre común; la mayoría de las veces se utiliza para almacenar el nombre del host. |
QSslCertificate::LocalityName | 2 | "L" La localidad. |
QSslCertificate::OrganizationalUnitName | 3 | "OU" El nombre de la unidad organizativa. |
QSslCertificate::CountryName | 4 | "C" El país. |
QSslCertificate::StateOrProvinceName | 5 | "ST" Estado o provincia. |
QSslCertificate::DistinguishedNameQualifier | 6 | El calificador de nombre distinguido. |
QSslCertificate::SerialNumber | 7 | El número de serie del certificado. |
QSslCertificate::EmailAddress | 8 | La dirección de correo electrónico asociada al certificado |
Documentación de la función de miembro
[explicit] QSslCertificate::QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
Construye un QSslCertificate leyendo format datos codificados de device y usando el primer certificado encontrado. Posteriormente puede llamar a isNull() para ver si device contenía un certificado, y si este certificado se cargó correctamente.
[explicit] QSslCertificate::QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem)
Construye un QSslCertificate analizando el format codificado data y utilizando el primer certificado disponible encontrado. Más tarde puede llamar a isNull() para ver si data contenía un certificado, y si este certificado se cargó correctamente.
QSslCertificate::QSslCertificate(const QSslCertificate &other)
Construye una copia idéntica de other.
[constexpr noexcept, since 6.8] QSslCertificate::QSslCertificate(QSslCertificate &&other)
Move-construye un nuevo QSslCertificate a partir de other.
Nota: El objeto movido-desde other se coloca en un estado parcialmente formado, en el que las únicas operaciones válidas son las destrucciones y la asignación de un nuevo valor.
Esta función se introdujo en Qt 6.8.
[noexcept] QSslCertificate::~QSslCertificate()
Destruye el QSslCertificate.
void QSslCertificate::clear()
Borra el contenido de este certificado, convirtiéndolo en un certificado nulo.
Véase también isNull().
QByteArray QSslCertificate::digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const
Devuelve un resumen criptográfico de este certificado. Por defecto, se generará un compendio MD5, pero también puede especificar un algorithm personalizado.
QDateTime QSslCertificate::effectiveDate() const
Devuelve la fecha-hora en que el certificado pasa a ser válido, o un QDateTime vacío si se trata de un certificado nulo.
Véase también expiryDate().
QDateTime QSslCertificate::expiryDate() const
Devuelve la fecha-hora en que caduca el certificado, o un QDateTime vacío si se trata de un certificado nulo.
Véase también effectiveDate().
QList<QSslCertificateExtension> QSslCertificate::extensions() const
Devuelve una lista con las extensiones X509 de este certificado.
[static] QList<QSslCertificate> QSslCertificate::fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem)
Busca y analiza todos los certificados en data que están codificados en el format especificado y los devuelve en una lista de certificados.
Véase también fromDevice().
[static] QList<QSslCertificate> QSslCertificate::fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
Busca y analiza todos los certificados en device que están codificados en el format especificado y los devuelve en una lista de certificados.
Véase también fromData().
[static, since 6.10] QList<QSslCertificate> QSslCertificate::fromFile(const QString &filePath, QSsl::EncodingFormat format = QSsl::Pem)
Lee los datos del archivo filePath y analiza todos los certificados que están codificados en el format especificado y devuelve una lista de objetos QSslCertificate.
Si filePath no es un archivo normal, este método devolverá una lista vacía.
Esta función se introdujo en Qt 6.10.
Véase también fromData() y fromPath().
[static] QList<QSslCertificate> QSslCertificate::fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QSslCertificate::PatternSyntax syntax = PatternSyntax::FixedString)
Busca en todos los archivos de path certificados codificados en el formato especificado format y los devuelve en una lista. path debe ser un archivo o un patrón que coincida con uno o más archivos, tal como se especifica en syntax.
Ejemplo:
const auto certs = QSslCertificate::fromPath("C:/ssl/certificado.*.pem", QSsl::Pem, QSslCertificate::Wildcard);for(const QSslCertificate &cert: certs) { qDebug() << cert.issuerInfo(QSslCertificate::Organization); }
Véase también fromData().
Qt::HANDLE QSslCertificate::handle() const
Devuelve un puntero al manejador nativo del certificado, si existe, en caso contrario nullptr.
Puede utilizar este manejador, junto con la API nativa, para acceder a información ampliada sobre el certificado.
Advertencia: El uso de esta función tiene una alta probabilidad de no ser portable, y su valor de retorno puede variar de una plataforma a otra o cambiar de una versión menor a otra.
[static] bool QSslCertificate::importPkcs12(QIODevice *device, QSslKey *key, QSslCertificate *certificate, QList<QSslCertificate> *caCertificates = nullptr, const QByteArray &passPhrase = QByteArray())
Importa un archivo PKCS#12 (pfx) de la dirección device especificada. Un archivo PKCS#12 es un paquete que puede contener varios certificados y claves. Este método lee un único key, su certificate y cualquier caCertificates asociado del paquete. Si se especifica passPhrase, se utilizará para descifrar el paquete. Devuelve true si el archivo PKCS#12 se ha cargado correctamente.
Nota: device debe estar abierto y listo para ser leído.
bool QSslCertificate::isBlacklisted() const
Devuelve true si este certificado está en la lista negra; en caso contrario devuelve false.
Véase también isNull().
bool QSslCertificate::isNull() const
Devuelve true si se trata de un certificado nulo (es decir, un certificado sin contenido); en caso contrario, devuelve false.
Por defecto, QSslCertificate construye un certificado nulo.
Véase también clear().
bool QSslCertificate::isSelfSigned() const
Devuelve true si este certificado está autofirmado; en caso contrario, devuelve false.
Un certificado se considera autofirmado si el emisor y el asunto son idénticos.
QString QSslCertificate::issuerDisplayName() const
Devuelve un nombre que describe al emisor. Devuelve el QSslCertificate::CommonName si está disponible, de lo contrario vuelve al primer QSslCertificate::Organization o al primer QSslCertificate::OrganizationalUnitName.
Véase también issuerInfo().
QStringList QSslCertificate::issuerInfo(QSslCertificate::SubjectInfo subject) const
Devuelve la información del emisor para subject del certificado, o una lista vacía si no hay información para subject en el certificado. Puede haber más de una entrada de cada tipo.
Véase también subjectInfo().
QStringList QSslCertificate::issuerInfo(const QByteArray &attribute) const
Devuelve la información del emisor para attribute del certificado, o una lista vacía si no hay información para attribute en el certificado. Puede haber más de una entrada para un atributo.
Véase también subjectInfo().
QList<QByteArray> QSslCertificate::issuerInfoAttributes() const
Devuelve una lista de los atributos que tienen valores en la información del emisor de este certificado. Se puede acceder a la información asociada a un atributo determinado mediante el método issuerInfo(). Tenga en cuenta que esta lista puede incluir los OID de cualquier elemento que no conozca el backend SSL.
Véase también subjectInfo().
QSslKey QSslCertificate::publicKey() const
Devuelve la clave pública del sujeto del certificado.
QByteArray QSslCertificate::serialNumber() const
Devuelve la cadena del número de serie del certificado en formato hexadecimal.
QMultiMap<QSsl::AlternativeNameEntryType, QString> QSslCertificate::subjectAlternativeNames() const
Devuelve la lista de nombres de asunto alternativos para este certificado. Los nombres alternativos suelen contener nombres de host, opcionalmente con comodines, que son válidos para este certificado.
Estos nombres se comprueban con el nombre de host del homólogo conectado si la información de asunto de CommonName no define un nombre de host válido o si el nombre de información de asunto no coincide con el nombre de host del homólogo.
Véase también subjectInfo().
QString QSslCertificate::subjectDisplayName() const
Devuelve un nombre que describe el tema. Devuelve el QSslCertificate::CommonName si está disponible, de lo contrario vuelve al primer QSslCertificate::Organization o al primer QSslCertificate::OrganizationalUnitName.
Véase también subjectInfo().
QStringList QSslCertificate::subjectInfo(QSslCertificate::SubjectInfo subject) const
Devuelve la información para subject, o una lista vacía si no hay información para subject en el certificado. Puede haber más de una entrada de cada tipo.
Véase también issuerInfo().
QStringList QSslCertificate::subjectInfo(const QByteArray &attribute) const
Devuelve la información de asunto para attribute, o una lista vacía si no hay información para attribute en el certificado. Puede haber más de una entrada para un atributo.
Véase también issuerInfo().
QList<QByteArray> QSslCertificate::subjectInfoAttributes() const
Devuelve una lista de los atributos que tienen valores en la información de asunto de este certificado. Se puede acceder a la información asociada a un atributo determinado mediante el método subjectInfo(). Tenga en cuenta que esta lista puede incluir los OID de cualquier elemento que no conozca el backend SSL.
Véase también subjectInfo().
[noexcept] void QSslCertificate::swap(QSslCertificate &other)
Intercambia esta instancia de certificado con other. Esta operación es muy rápida y nunca falla.
QByteArray QSslCertificate::toDer() const
Devuelve este certificado convertido a una representación codificada en DER (binario).
QByteArray QSslCertificate::toPem() const
Devuelve este certificado convertido a una representación codificada PEM (Base64).
QString QSslCertificate::toText() const
Devuelve este certificado convertido a una representación de texto legible por humanos.
[static] QList<QSslError> QSslCertificate::verify(const QList<QSslCertificate> &certificateChain, const QString &hostName = QString())
Verifica una cadena de certificados. La cadena a verificar se pasa en el parámetro certificateChain. El primer certificado de la lista debe ser el certificado hoja de la cadena que se va a verificar. Si se especifica hostName, también se comprueba si el certificado es válido para el nombre de host especificado.
Tenga en cuenta que el certificado raíz (CA) no debe incluirse en la lista a verificar, éste se buscará automáticamente utilizando la lista de CA especificada en la dirección por defecto QSslConfiguration, y, además, si es posible, los certificados CA cargados bajo demanda en Unix y Windows.
QByteArray QSslCertificate::version() const
Devuelve la cadena de versión del certificado.
bool QSslCertificate::operator!=(const QSslCertificate &other) const
Devuelve true si este certificado no es el mismo que other; en caso contrario devuelve false.
QSslCertificate &QSslCertificate::operator=(const QSslCertificate &other)
Copia el contenido de other en este certificado, haciendo que los dos certificados sean idénticos.
bool QSslCertificate::operator==(const QSslCertificate &other) const
Devuelve true si este certificado es el mismo que other; en caso contrario devuelve 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.