TsgcWebSocketClientProperties › TLSOptions

TLSOptions Property

Configura certificados, versão de TLS, ALPN, IOHandler e outros detalhes de conexão segura usados quando o TLS está habilitado.

Sintaxe

property TLSOptions: TsgcWSTLS_Options read FTLSOptions write SetTLSOptions;

Valor Padrão

Preset=tlspCustom

Observações

Acessível somente quando TLS é True. As subpropriedades incluem RootCertFile, CertFile, KeyFile, Password, VerifyCertificate, VerifyDepth, Version (de tlsUndefined até tls1_3), ALPNProtocols e IOHandler (iohOpenSSL, iohSChannel, iohAndroidTLS ou iohAppleTLS). No Android, iohAndroidTLS usa o TLS nativo da plataforma (javax.net.ssl.SSLEngine) e no iOS e macOS, iohAppleTLS usa o TLS nativo da Apple, portanto nenhuma biblioteca OpenSSL precisa ser implantada; o TLS nativo da plataforma requer a edição Enterprise. As configurações específicas do OpenSSL ficam em OpenSSL_Options e as configurações específicas do SChannel em SChannel_Options.

VerifyCertificate controla a validação de certificado da mesma forma para todos os IOHandler, incluindo iohSChannel: o padrão é False, portanto um servidor que apresenta um certificado autoassinado, expirado ou com host incorreto é aceito sem nenhum aviso até que seja definido como True. Com o SChannel, a validação é então realizada em relação ao armazenamento de certificados do Windows; OnSChannelVerifyPeer permite que a aplicação inspecione a cadeia ou aceite um certificado que de outra forma seria rejeitado.

VerifyCertificate não diz nada sobre se o certificado foi revogado desde que foi emitido, portanto uma chave roubada cujo certificado foi revogado, mas ainda não expirou, continua se autenticando. Com iohSChannel, o status de revogação só é verificado quando SChannel_Options.Revocation.Check está definido como algo diferente de scrcDisabled (o padrão): scrcEndCertificate verifica somente o certificado do servidor, scrcChainExcludeRoot o verifica junto com os intermediários e scrcChain inclui a raiz. Revocation.Timeout limita toda a obtenção de CRL e OCSP (5000 ms por padrão) para que um respondedor inacessível não possa travar o handshake, Revocation.CacheOnly usa somente o que o Windows já armazenou em cache e nunca vai à rede, e Revocation.IgnoreRevocationOffline e Revocation.IgnoreNoRevocationCheck (ambos True) decidem se um respondedor inacessível ou um certificado que não publica informações de revogação é aceito. Um certificado comprovadamente revogado é sempre rejeitado. Consulte SChannel Certificate Revocation.

Preset aplica um conjunto de padrões seguros em uma única atribuição. Com tlspCustom (padrão), cada opção mantém o valor que você configura manualmente, preservando o comportamento anterior. Definir Preset := tlspSecureDefaults habilita a verificação de certificados (VerifyCertificate := True), eleva Version para pelo menos TLS 1.2 (quando uma versão inferior ou indefinida estava configurada) e habilita a verificação do nome do host do certificado do servidor (validação de nome de host X509Checks do OpenSSL) e habilita a verificação de revogação do SChannel como scrcChainExcludeRoot. As opções individuais ainda podem ser ajustadas após aplicar o preset.

Exemplo


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;

Voltar para Propriedades