TsgcQUICServer › Propriedades › QUICOptions
Configuração do servidor, incluindo o certificado TLS, a chave privada e o número máximo de conexões.
property QUICOptions: TsgcQUICServerOptions read FQUICOptions write SetQUICOptions;
MaxConnections=0; SSLOptions.Password=''; SSLOptions.VerifyCertificate=False; SSLOptions.OpenSSL_Options.APIVersion=oslAPI_3_0
Agrupa a configuração aplicada ao listener QUIC. Como o QUIC sempre é executado sobre TLS 1.3, um certificado e uma chave privada são obrigatórios e devem ser definidos antes de chamar Start. Os membros disponíveis são:
SSLOptions.CertFile: caminho para o certificado do servidor no formato PEM. Obrigatório.SSLOptions.KeyFile: caminho para a chave privada correspondente ao certificado, no formato PEM. Obrigatório. Uma chave criptografada (protegida por senha) é suportada, defina a senha em Password.SSLOptions.Password: senha da chave privada criptografada. O servidor instala um callback de senha do OpenSSL antes de carregar KeyFile, portanto uma chave PEM protegida por senha é carregada sem solicitar nada no console. Deixe em branco para uma chave não criptografada. No .NET o mesmo membro também é utilizado ao carregar um PFX.SSLOptions.RootCertFile: caminho para o certificado raiz da CA usado quando a verificação de certificado de cliente está habilitada. É lido quando VerifyCertificate é True; quando está vazio, são utilizados os caminhos de verificação padrão do OpenSSL.SSLOptions.VerifyCertificate: quando True, o servidor solicita e verifica o certificado do cliente. O padrão é False. As âncoras de CA são carregadas primeiro a partir de RootCertFile e, em seguida, o contexto é definido como SSL_VERIFY_PEER com SSL_VERIFY_FAIL_IF_NO_PEER_CERT, de modo que um cliente que não apresenta certificado, ou que apresenta um que não valida, é rejeitado.SSLOptions.OpenSSL_Options: configurações OpenSSL de baixo nível; a versão da API tem como padrão oslAPI_3_0 porque o QUIC requer a API OpenSSL 3.x.SSLOptions.IOHandler: mecanismo TLS do handshake QUIC. iohOpenSSL (padrão) mantém o caminho OpenSSL, onde o mecanismo é escolhido automaticamente (veja QUICMode). iohNativeTLS roda o handshake TLS 1.3 sobre o mecanismo TLS nativo do pacote sgcCrypto e sempre usa o mecanismo QUIC sgc (QUICMode = qmCustom). O certificado é lido em PEM ou PFX, e os certificados de cliente são verificados contra RootCertFile ou as raízes do sistema. Tíquetes de sessão, retomada e 0-RTT funcionam como no OpenSSL. A proteção de pacotes QUIC também é nativa, então o OpenSSL não é carregado.MaxConnections: número máximo de conexões simultâneas; 0 (padrão) significa ilimitado. Novas conexões são descartadas ao atingir o limite.
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;