Les développeurs souhaitent généralement créer des applications et des infrastructures à l'aide de bibliothèques publiées, officielles et prises en charge. Même avec HTTP/3, il existe un fort besoin d’une bibliothèque pratique qui prend en charge QUIC et n’augmente pas les coûts de maintenance ou la complexité opérationnelle de l’infrastructure de production.
Pour de nombreux utilisateurs de QUIC+HTTP/3 , cette bibliothèque cryptographique par défaut est OpenSSL . Installé par défaut sur la plupart des systèmes d'exploitation basés sur Linux, OpenSSL est la bibliothèque TLS (Transport Layer Security) numéro un et est utilisée par la majorité des applications réseau.
Même avec une utilisation aussi large, OpenSSL ne fournit pas l'API TLS requise pour la prise en charge de QUIC. Au lieu de cela, le comité de gestion d'OpenSSL a décidé de mettre en œuvre lui-même une pile QUIC complète. Cette initiative représente un effort considérable prévu pour OpenSSL v3.4 mais, selon la feuille de route d'OpenSSL , cela n'arrivera probablement pas avant la fin de 2024. De plus, le produit minimum viable initial de l'implémentation d'OpenSSL ne contiendra pas l'implémentation de l'API QUIC, il n'y a donc pas de chemin clair pour que les utilisateurs obtiennent la prise en charge HTTP/3 avec OpenSSL.
Dans cette situation, les utilisateurs à la recherche d'un support QUIC TLS pour leurs besoins HTTP/3 ont deux options :
Chez NGINX, nous nous sommes sentis inspirés par ces défis et avons créé la couche de compatibilité OpenSSL pour simplifier les déploiements QUIC+HTTP/3 qui utilisent OpenSSL et aider à éviter les complexités associées à la maintenance d'une bibliothèque SSL distincte dans les environnements de production.
Disponible avec la ligne principale NGINX Open Source depuis la version 1.25.0 et NGINX Plus R30 , la couche de compatibilité OpenSSL permet à NGINX d'exécuter QUIC+HTTP/3 sur OpenSSL sans avoir besoin de le corriger ou de le reconstruire. Cela supprime la dépendance à la compilation et au déploiement de bibliothèques TLS tierces pour obtenir la prise en charge QUIC. Étant donné que les utilisateurs n’ont pas besoin d’utiliser des bibliothèques tierces, cela réduit également la dépendance aux calendriers et aux feuilles de route de ces bibliothèques, ce qui en fait une solution relativement plus facile à déployer en production.
La couche de compatibilité OpenSSL implémente ces étapes :
Compte tenu du niveau d’adoption d’OpenSSL aujourd’hui et connaissant son statut avec le support officiel de QUIC+HTTP/3, nous pensons qu’une option simple et évolutive pour activer QUIC est un pas dans la bonne direction. Cela favorisera également l’adoption de HTTP/3 et permettra d’obtenir des retours précieux. Plus important encore, nous sommes convaincus que la couche de compatibilité OpenSSL nous aidera à fournir une solution plus robuste et évolutive à nos utilisateurs d’entreprise et à l’ensemble de la communauté NGINX.
Note : Bien que nous veillons à ce que les utilisateurs de NGINX disposent d'une option simple et évolutive avec la disponibilité de la couche de compatibilité OpenSSL, les utilisateurs ont toujours la possibilité d'utiliser des bibliothèques tierces comme BoringSSL, quicTLS ou LibreSSL avec NGINX. Pour décider quelle est la voie qui vous convient le mieux, réfléchissez à l'approche qui répond le mieux à vos besoins et à votre degré de confort avec la compilation et la gestion des bibliothèques en tant que dépendances.
0-RTT est une fonctionnalité de QUIC qui permet à un client d'envoyer des données d'application avant la fin de la négociation TLS. La fonctionnalité 0-RTT est rendue possible en réutilisant les paramètres négociés d'une connexion précédente. Cela est activé lorsque le client mémorise les paramètres critiques et fournit au serveur un ticket de session TLS qui permet au serveur de récupérer les mêmes informations.
Bien que cette fonctionnalité soit un élément important de QUIC, elle n'est pas encore prise en charge dans la couche de compatibilité OpenSSL. Si vous avez des cas d'utilisation spécifiques qui nécessitent 0-RTT, nous vous invitons à nous faire part de vos commentaires pour éclairer notre feuille de route.
Vous pouvez commencer à utiliser la couche de compatibilité OpenSSL de NGINX dès aujourd'hui avec NGINX Open Source ou en démarrant un essai gratuit de 30 jours de NGINX Plus . Nous espérons que vous le trouverez utile et serons ravis de recevoir vos commentaires.
Plus d'informations sur NGINX avec QUIC+HTTP/3 et OpenSSL sont disponibles dans les ressources ci-dessous.
« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."