Os desenvolvedores geralmente querem criar aplicativos e infraestrutura usando bibliotecas lançadas, oficiais e suportadas. Mesmo com HTTP/3, há uma forte necessidade de uma biblioteca conveniente que suporte QUIC e não aumente os custos de manutenção ou a complexidade operacional na infraestrutura de produção.
Para muitos usuários do QUIC+HTTP/3 , a biblioteca criptográfica padrão é o OpenSSL . Instalado por padrão na maioria dos sistemas operacionais baseados em Linux, o OpenSSL é a biblioteca número um de Segurança da Camada de Transporte (TLS) e é usado pela maioria dos aplicativos de rede.
Mesmo com uso tão amplo, o OpenSSL não fornece a API TLS necessária para suporte QUIC. Em vez disso, o Comitê de Gestão do OpenSSL decidiu implementar uma pilha QUIC completa por conta própria. Esse esforço é um esforço considerável planejado para o OpenSSL v3.4, mas, de acordo com o roteiro do OpenSSL , isso provavelmente não acontecerá antes do final de 2024. Além disso, o Produto Mínimo Viável inicial da implementação do OpenSSL não conterá a implementação da API QUIC, portanto não há um caminho claro para os usuários obterem suporte a HTTP/3 com o OpenSSL.
Nessa situação, há duas opções para usuários que buscam suporte QUIC TLS para suas necessidades HTTP/3:
Na NGINX, nos sentimos inspirados por esses desafios e criamos a Camada de Compatibilidade OpenSSL para simplificar implantações QUIC+HTTP/3 que usam OpenSSL e ajudar a evitar complexidades associadas à manutenção de uma biblioteca SSL separada em ambientes de produção.
Disponível com o NGINX Open Source mainline desde a versão 1.25.0 e o NGINX Plus R30 , a Camada de Compatibilidade OpenSSL permite que o NGINX execute QUIC+HTTP/3 sobre o OpenSSL sem precisar aplicar patches ou reconstruí-lo. Isso elimina a dependência de compilação e implantação de bibliotecas TLS de terceiros para obter suporte QUIC. Como os usuários não precisam usar bibliotecas de terceiros, isso também alivia a dependência de cronogramas e roteiros dessas bibliotecas, tornando-a uma solução comparativamente mais fácil de implantar em produção.
A Camada de Compatibilidade OpenSSL implementa estas etapas:
Com base na quantidade de adoção do OpenSSL hoje e sabendo de seu status com suporte oficial QUIC+HTTP/3, acreditamos que uma opção fácil e escalável para habilitar o QUIC é um passo na direção certa. Também promoverá a adoção do HTTP/3 e permitirá feedback valioso. Mais importante ainda, confiamos que a Camada de Compatibilidade OpenSSL nos ajudará a fornecer uma solução mais robusta e escalável para nossos usuários corporativos e para toda a comunidade NGINX.
Observação : Enquanto garantimos que os usuários do NGINX tenham uma opção fácil e escalável com a disponibilidade da Camada de Compatibilidade OpenSSL, os usuários ainda têm opções para usar bibliotecas de terceiros como BoringSSL, quicTLS ou LibreSSL com o NGINX. Para decidir qual é o caminho certo para você, considere qual abordagem atende melhor às suas necessidades e o quão confortável você está compilando e gerenciando bibliotecas como dependências.
0-RTT é um recurso do QUIC que permite que um cliente envie dados do aplicativo antes que o handshake TLS seja concluído. A funcionalidade 0-RTT é possível pela reutilização de parâmetros negociados de uma conexão anterior. Ele é habilitado quando o cliente lembra parâmetros críticos e fornece ao servidor um tíquete de sessão TLS que permite que o servidor recupere as mesmas informações.
Embora esse recurso seja uma parte importante do QUIC, ele ainda não é suportado na Camada de Compatibilidade OpenSSL. Se você tiver casos de uso específicos que precisam de 0-RTT, agradecemos seu feedback para informar nosso roteiro.
Você pode começar a usar a Camada de Compatibilidade OpenSSL do NGINX hoje mesmo com o NGINX Open Source ou iniciando uma avaliação gratuita de 30 dias do NGINX Plus . Esperamos que você ache isso útil e agradecemos seu feedback.
Mais informações sobre NGINX com QUIC+HTTP/3 e OpenSSL estão disponíveis nos recursos abaixo.
"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."