TsgcQUICServer › 属性 › QUICOptions
服务器配置,包括 TLS 证书和私钥以及最大连接数。
property QUICOptions: TsgcQUICServerOptions read FQUICOptions write SetQUICOptions;
MaxConnections=0; SSLOptions.Password=''; SSLOptions.VerifyCertificate=False; SSLOptions.OpenSSL_Options.APIVersion=oslAPI_3_0
汇总应用于 QUIC 监听器的配置。由于 QUIC 始终基于 TLS 1.3 运行,证书和私钥为必填项,必须在调用 Start 之前设置。可用成员包括:
SSLOptions.CertFile:PEM 格式服务器证书的路径。必填。SSLOptions.KeyFile:与证书匹配的私钥的路径,PEM 格式。必填。支持加密(受口令保护)的密钥,请在 Password 中设置其口令。SSLOptions.Password:加密私钥的口令。服务器会在加载 KeyFile 之前安装 OpenSSL 口令回调,因此受口令保护的 PEM 密钥无需在控制台提示即可加载。未加密的密钥请留空。在 .NET 中,加载 PFX 时也会使用该成员。SSLOptions.RootCertFile:用于验证客户端证书的 CA 根证书的路径。VerifyCertificate 为 True 时读取该值;留空时改用 OpenSSL 的默认验证路径。SSLOptions.VerifyCertificate:为 True 时,服务器请求并验证客户端证书(双向 TLS)。默认为 False。CA 信任锚会先从 RootCertFile 加载,然后上下文被设置为 SSL_VERIFY_PEER 并附带 SSL_VERIFY_FAIL_IF_NO_PEER_CERT,因此未提供证书或证书未通过验证的客户端都会被拒绝。SSLOptions.OpenSSL_Options:低级 OpenSSL 设置;API 版本默认为 oslAPI_3_0,因为 QUIC 需要 OpenSSL 3.x API。SSLOptions.IOHandler:QUIC 握手所使用的 TLS 引擎,默认 iohOpenSSL。iohOpenSSL 保留 OpenSSL 路径,引擎会自动选择(参阅 QUICMode)。iohNativeTLS 让 TLS 1.3 握手运行在 sgcCrypto 包的原生 TLS 引擎上,并始终使用 sgc QUIC 引擎(QUICMode = qmCustom)。证书从 PEM 或 PFX 读取,客户端证书依据 RootCertFile 或系统根证书验证。会话票据、会话恢复和 0-RTT 的工作方式与 OpenSSL 相同。QUIC 报文保护同样是原生的,因此完全不加载 OpenSSL。MaxConnections:同时连接的最大数量;0(默认)表示无限制。达到限制后新连接将被丢弃。
oServer := TsgcQUICServer.Create(nil);
oServer.Port := 4433;
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.QUICOptions.MaxConnections := 1000;
oServer.Start;