TsgcQUICClient › 属性 › SSLQUICOptions

SSLQUICOptions 属性

QUIC 连接的 TLS 1.3 设置:证书、ALPN 和对等方验证。

语法

property SSLQUICOptions: TsgcSSLQUICClient_Options read FSSLQUICOptions write SetSSLQUICOptions;

默认值

—

备注

SSLQUICOptions 汇总了 QUIC 所需的安全层使用的 TLS 1.3 设置。QUIC 始终协商 ALPN 和 TLS 1.3,这些选项控制握手的执行方式:CertFile 和 KeyFile 提供客户端证书,RootCertFile 提供用于验证服务器的 CA,VerifyCertificate 和 VerifyCertificate_Options 控制对等方验证,Version 选择 TLS 版本,OpenSSL_Options 调整 OpenSSL 后端,ConnectTimeout 限制握手时间。请在打开连接之前调整其子属性,这些值在连接建立时读取。安全层本身通过 SSLQUIC 启用或禁用,而 QUICOptions 保存非 TLS 传输调优参数。

IOHandler(默认 iohOpenSSL)选择 QUIC 握手所使用的 TLS 引擎。iohOpenSSL 保留 OpenSSL 路径和自动引擎选择。iohNativeTLS 让 TLS 1.3 握手运行在 sgcCrypto 包的原生 TLS 引擎上,并始终使用 sgc QUIC 引擎(qmCustom)。会话票据、会话恢复和 0-RTT 的工作方式与 OpenSSL 相同。QUIC 报文保护同样是原生的,因此完全不加载 OpenSSL。

ConnectTimeout 现在由传输层强制执行:握手按照该期限推进,一旦到期立即放弃,因此使用默认值时,无法访问的服务器会在约十秒后失败,而不是像以前的阻塞式握手那样耗时约三十秒。

VerifyCertificate 为 True 时,证书还会与所连接的主机绑定:Host 中的 DNS 名称与证书中的主机名匹配,IP 字面量地址与证书中的 IP 条目匹配,因此证书链有效但签发给其他名称的证书会被拒绝。该主机标识检查无需您做任何配置,客户端会自行把连接目标传递给验证步骤;OpenSSL_Options.X509Checks 用于覆盖或扩展该检查,而不是用于启用它。

示例


oClient := TsgcQUICClient.Create(nil);
oClient.Host := 'www.example.com';
oClient.Port := 443;
oClient.SSLQUIC := True;
oClient.SSLQUICOptions.VerifyCertificate := True;
oClient.SSLQUICOptions.RootCertFile := 'ca.pem';

返回属性