TsgcWebSocketClientPropiedades › TLSOptions

TLSOptions Propiedad

Configura certificados, versión TLS, ALPN, IOHandler y otros detalles de conexión segura utilizados cuando TLS está habilitado.

Sintaxis

property TLSOptions: TsgcWSTLS_Options read FTLSOptions write SetTLSOptions;

Valor Predeterminado

Preset=tlspCustom

Observaciones

Accesible solo cuando TLS es True. Las subpropiedades incluyen RootCertFile, CertFile, KeyFile, Password, VerifyCertificate, VerifyDepth, Version (desde tlsUndefined hasta tls1_3), ALPNProtocols y IOHandler (iohOpenSSL, iohSChannel, iohAndroidTLS o iohAppleTLS). En Android, iohAndroidTLS utiliza el TLS nativo de la plataforma (javax.net.ssl.SSLEngine) y en iOS y macOS, iohAppleTLS utiliza el TLS nativo de Apple, por lo que no es necesario desplegar bibliotecas de OpenSSL; el TLS nativo de la plataforma requiere la edición Enterprise. La configuración específica de OpenSSL reside bajo OpenSSL_Options y la configuración específica de SChannel bajo SChannel_Options.

VerifyCertificate controla la validación del certificado de la misma manera para todos los IOHandler, incluido iohSChannel: su valor predeterminado es False, por lo que un servidor que presente un certificado autofirmado, caducado o con un nombre de host incorrecto se acepta sin ninguna advertencia hasta que se establece en True. Con SChannel, la validación se realiza entonces frente al almacén de certificados de Windows; OnSChannelVerifyPeer permite a la aplicación inspeccionar la cadena o aceptar un certificado que de otro modo sería rechazado.

VerifyCertificate no dice nada sobre si el certificado ha sido revocado desde que se emitió, por lo que una clave robada cuyo certificado fue revocado pero aún no ha caducado sigue autenticándose. Con iohSChannel, el estado de revocación se comprueba únicamente cuando SChannel_Options.Revocation.Check se establece en un valor distinto de scrcDisabled (el valor predeterminado): scrcEndCertificate comprueba solo el certificado del servidor, scrcChainExcludeRoot lo comprueba junto con los intermedios, y scrcChain incluye la raíz. Revocation.Timeout limita toda la obtención de CRL y OCSP (5000 ms de forma predeterminada) para que un respondedor inaccesible no pueda bloquear el protocolo de enlace, Revocation.CacheOnly utiliza únicamente lo que Windows ya tiene en caché y nunca accede a la red, y Revocation.IgnoreRevocationOffline y Revocation.IgnoreNoRevocationCheck (ambas True) deciden si se acepta un respondedor inaccesible o un certificado que no publica información de revocación. Un certificado confirmado como revocado siempre se rechaza. Consulte SChannel Certificate Revocation.

Preset aplica un conjunto de valores predeterminados seguros en una sola asignación. Con tlspCustom (valor predeterminado) cada opción conserva el valor que usted configure manualmente, preservando el comportamiento anterior. Establecer Preset := tlspSecureDefaults habilita la verificación del certificado (VerifyCertificate := True), eleva Version como mínimo a TLS 1.2 (cuando se había configurado una versión inferior o sin definir) y habilita la comprobación del nombre de host del certificado del servidor (validación de nombre de host X509Checks de OpenSSL) y habilita la comprobación de revocación de SChannel como scrcChainExcludeRoot. Las opciones individuales pueden ajustarse igualmente después de aplicar el preset.

Ejemplo


oClient := TsgcWebSocketClient.Create(nil);
oClient.URL := 'wss://www.esegece.com:2053';
oClient.TLSOptions.Version := tls1_2;
oClient.TLSOptions.VerifyCertificate := true;
oClient.TLSOptions.RootCertFile := 'cacert.pem';
oClient.Active := true;

Volver a Propiedades