En esta página

Clases Secure Sockets Layer (SSL)

Las siguientes clases proporcionan soporte para comunicaciones de red seguras usando el protocolo Secure Sockets Layer (SSL), usando un backend TLS nativo, el OpenSSL Toolkit, o cualquier plugin TLS apropiado para realizar la encriptación y el manejo del protocolo.

QDtls

Esta clase proporciona cifrado para sockets UDP

QDtlsClientVerifier

Esta clase implementa la generación y verificación de cookies DTLS del lado del servidor.

QDtlsClientVerifier::GeneratorParameters

Esta clase define parámetros para el generador de cookies DTLS

QOcspResponse

Esta clase representa la respuesta Online Certificate Status Protocol

QSsl

Declara enums comunes a todas las clases SSL en Qt Network

QSslCertificate

API práctica para un certificado X509

QSslCertificateExtension

API para acceder a las extensiones de un certificado X509

QSslCipher

Representa un cifrado criptográfico SSL

QSslConfiguration

Mantiene la configuración y el estado de una conexión SSL

QSslDiffieHellmanParameters

Interfaz para parámetros Diffie-Hellman para servidores

QSslEllipticCurve

Representa una curva elíptica para su uso por algoritmos de cifrado de curva elíptica

QSslError

Error SSL

QSslKey

Interfaz para claves privadas y públicas

QSslPreSharedKeyAuthenticator

Datos de autenticación para cifrados de claves precompartidas (PSK)

QSslServer

Implementa un servidor TCP cifrado y seguro a través de TLS

QSslSocket

Socket cifrado SSL para clientes y servidores

QSslSocket::AlertLevel

Describe el nivel de un mensaje de alerta

QSslSocket::AlertType

Enumera los posibles códigos que puede tener un mensaje de alerta

QDtls::HandshakeState

Describe el estado actual del handshake DTLS

QSslSocket::ImplementedClass

Enumera las clases que implementa un backend TLS

QDtls::QDtlsError

Describe los errores que pueden ser encontrados por QDtls y QDtlsClientVerifier

QOcspResponse::QOcspCertificateStatus

Describe el estado del certificado en línea

QOcspResponse::QOcspRevocationReason

Describe el motivo de la revocación

QSslSocket::SupportedFeature

Enumera las posibles funciones que admite un backend TLS

Para aplicaciones Android, consulte Adición de soporte OpenSSL para Android.

Uso del cifrado en aplicaciones en red

Utilice el cifrado al transportar datos en cualquier red siempre que sea posible. El texto plano, que son datos sin cifrar fácilmente legibles, expone datos sensibles como la información del usuario y la información sobre los sistemas de red.

Utilice QSslSocket::connectToHostEncrypted() para conectarse mediante cifrado y compruebe si hay problemas con SSL utilizando QSslSocket::sslHandshakeErrors(). Utiliza QSslSocket::ignoreSslErrors() con precaución ya que creará riesgos de seguridad en tu aplicación.

Utiliza QSslConfiguration para reforzar la configuración de seguridad. Los protocolos soportados dependen del backend SSL y el nivel de riesgo de un protocolo podría cambiar en el futuro. Puedes utilizar un protocolo más nuevo y seguro utilizando QSslConfiguration::setProtocol(). Para más información, consulte QSsl::SslProtocol para conocer los protocolos disponibles.

Activar y desactivar el soporte SSL al compilar Qt desde el código fuente

Cuando se construye Qt desde el código fuente, Qt construye plugins para las librerías TLS nativas que son soportadas por el sistema operativo para el que se está construyendo. Para Windows esto significa Schannel, mientras que para macOS es Secure Transport.

En todas las plataformas, el sistema de configuración comprueba la presencia de la cabecera openssl/opensslv.h proporcionada por los paquetes fuente o de desarrollador de OpenSSL. Si lo encuentra, habilitará y construirá el backend OpenSSL para Qt.

Nota: Aunque Qt puede seguir soportando la versión antigua OpenSSL 1.1.1 cuando se construye a partir de fuentes, las compilaciones de Qt en el directorio Qt Online Installer requieren OpenSSL 3 en tiempo de ejecución.

Por defecto, una librería Qt habilitada para OpenSSL carga dinámicamente cualquier librería OpenSSL instalada en tiempo de ejecución. Sin embargo, es posible enlazar con la librería en tiempo de compilación configurando Qt con la opción -openssl-linked.

Cuando se construye una versión de Qt enlazada con OpenSSL, el sistema de construcción de Qt utilizará el comando FindOpenSSL de CMake para encontrar OpenSSL en varias ubicaciones estándar. Puedes establecer la variable de CMake OPENSSL_ROOT_DIR para forzar una ubicación específica.

Por ejemplo:

configure -openssl-linked -- -D OPENSSL_ROOT_DIR=<openssl_dir>

Para desactivar el soporte de SSL en una compilación de Qt, configure Qt con la opción -no-openssl.

Consideraciones al empaquetar su aplicación

Cuando empaquetas tu aplicación, puedes ejecutar una herramienta como windeployqt. Esta copia todos los plugins de las librerías que utilizas a la carpeta plugins/. Sin embargo, para TLS sólo necesitas un backend, y puedes borrar los otros plugins antes de empaquetar tu aplicación. Por ejemplo, si utiliza Windows y no necesita ninguna de las funciones adicionales que ofrece el backend OpenSSL, puede renunciar a enviar el complemento qopensslbackend así como la biblioteca OpenSSL, y enviar simplemente el complemento qschannelbackend.

Sin embargo, enviar múltiples backends no es un problema. Qt intentará cargar los backends en orden (con OpenSSL primero) hasta que uno se cargue con éxito. Los otros backends no se utilizan.

Seguridad de la capa de transporte de datagramas

Datagram Transport Layer Security (DTLS) es un protocolo que permite la seguridad de las aplicaciones basadas en datagramas, proporcionándoles protección contra escuchas, manipulación o falsificación de mensajes. El protocolo DTLS se basa en el protocolo orientado a flujos Transport Layer Security (TLS). QtNetwork permite el uso de DTLS con el Protocolo de Datagramas de Usuario (UDP), tal y como se define en RFC 6347.

Restricciones a la importación y exportación

Algunos tipos de software y algunas partes del mundo están sujetos a restricciones de importación y exportación. Los desarrolladores que deseen utilizar la comunicación SSL en sus aplicaciones deben asegurarse de que sus usuarios tienen instaladas las bibliotecas apropiadas, o bien consultar a un profesional del derecho debidamente cualificado para asegurarse de que las aplicaciones que utilizan código del proyecto OpenSSL están correctamente certificadas para la importación y exportación en las regiones pertinentes del mundo.

Consulte Control de exportaciones de Qt Framework y herramientas para obtener más información.

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