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.
Esta clase proporciona cifrado para sockets UDP | |
Esta clase implementa la generación y verificación de cookies DTLS del lado del servidor. | |
Esta clase define parámetros para el generador de cookies DTLS | |
Esta clase representa la respuesta Online Certificate Status Protocol | |
Declara enums comunes a todas las clases SSL en Qt Network | |
API práctica para un certificado X509 | |
API para acceder a las extensiones de un certificado X509 | |
Representa un cifrado criptográfico SSL | |
Mantiene la configuración y el estado de una conexión SSL | |
Interfaz para parámetros Diffie-Hellman para servidores | |
Representa una curva elíptica para su uso por algoritmos de cifrado de curva elíptica | |
Error SSL | |
Interfaz para claves privadas y públicas | |
Datos de autenticación para cifrados de claves precompartidas (PSK) | |
Implementa un servidor TCP cifrado y seguro a través de TLS | |
Socket cifrado SSL para clientes y servidores | |
Describe el nivel de un mensaje de alerta | |
Enumera los posibles códigos que puede tener un mensaje de alerta | |
Describe el estado actual del handshake DTLS | |
Enumera las clases que implementa un backend TLS | |
Describe los errores que pueden ser encontrados por QDtls y QDtlsClientVerifier | |
Describe el estado del certificado en línea | |
Describe el motivo de la revocación | |
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.