TsgcHTTP2Client › Propriedades › TLSOptions

TLSOptions Property

Configura certificados, versão TLS, ALPN, IOHandler e outros detalhes de conexão segura utilizados para HTTP/2 sobre TLS.

Sintaxe

property TLSOptions: TsgcTCPTLS_Options read FTLSOptions write SetTLSOptions;

Valor Padrão

—

Observações

Usado quando TLS é True. As subpropriedades incluem RootCertFile, CertFile, KeyFile, Password, VerifyCertificate, VerifyDepth, Version (de tlsUndefined até tls1_3), ALPNProtocols e IOHandler (iohOpenSSL, iohSChannel, iohNativeTLS, iohAndroidTLS ou iohAppleTLS). iohNativeTLS seleciona o mecanismo TLS 1.3 e TLS 1.2 em Object Pascal puro do pacote sgcCrypto, que negocia h2 por ALPN da mesma forma que o OpenSSL e não carrega nenhuma biblioteca OpenSSL, veja TLS nativo. 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. O HTTP/2 requer ALPN para anunciar o protocolo h2 durante o handshake TLS; o componente preenche a lista ALPN com h2 automaticamente, mas ALPNProtocols pode ser estendido se o servidor esperar identificadores adicionais. O protocolo h2 negociado é lido de todos os handlers, incluindo iohAndroidTLS e iohAppleTLS, portanto o HTTP/2 também funciona sobre o TLS nativo do Android e da Apple. As configurações específicas do OpenSSL ficam em OpenSSL_Options e as configurações específicas do SChannel em SChannel_Options. Recomenda-se o TLS 1.2 ou superior para HTTP/2.

Exemplo


oHTTP2 := TsgcHTTP2Client.Create(nil);
oHTTP2.Host := 'http2.akamai.com';
oHTTP2.Port := 443;
oHTTP2.TLS := True;
oHTTP2.TLSOptions.Version := tls1_2;
oHTTP2.TLSOptions.VerifyCertificate := True;
oHTTP2.TLSOptions.RootCertFile := 'cacert.pem';

Voltar para Propriedades