開発者は通常、リリースされたサポート対象となっている公式のライブラリを使用してアプリケーションやインフラを構築したいと考えています。HTTP/3でも、本番インフラにおけるメンテナンスコストや運用の複雑さを増加させずにQUICをサポートする便利なライブラリが強く求められています。
多くのQUIC+HTTP/3ユーザーにとって、そのデフォルトの暗号ライブラリはOpenSSLです。ほとんどのLinuxベースのオペレーティングシステムにデフォルトでインストールされているOpenSSLは主要なトランスポートレイヤーセキュリティ(TLS)ライブラリであり、大多数のネットワークアプリケーションで使用されています。
このように広く使用されているにもかかわらず、OpenSSLはQUICサポートに必要なTLS APIを提供していません。その代わりに、OpenSSL Management Committeeは完全なQUICスタックを独自に実装することを決定しました。この試みはOpenSSL v3.4で計画されている相当な努力ではありますが、OpenSSLのロードマップによると2024年末まででも実現しそうにはありません。さらに、このOpenSSL実装の初期の実用最小限の製品にはQUIC API実装が含まれていないので、ユーザーがOpenSSLでHTTP/3サポートを利用できる明確な道は示されていません。
この状況においてHTTP/3ニーズのためにQUIC TLSサポートを必要としているユーザーには2つの選択肢があります。
NGINXはこれらの課題を受け、OpenSSLを使用するQUIC+HTTP/3導入を簡素化するOpenSSL互換レイヤーを作成しました。これは本番環境で別のSSLライブラリを維持する複雑さを緩和します。
OpenSSL互換レイヤーはバージョン1.25.0以降のNGINX Open Sourceメインライン版およびNGINX Plus R30で利用でき、これによりNGINXはパッチや再構築を必要とせずにOpenSSL上でQUIC+HTTP/3を実行できるようになります。これによりQUICをサポートするためにサードパーティのTLSライブラリをコンパイルして導入するという依存性がなくなります。ユーザーはサードパーティのライブラリを使用する必要がないので、それらのライブラリのスケジュールやロードマップへの依存性も緩和され、本番環境への導入が比較的簡単になります。
OpenSSL互換レイヤーは以下のステップを実行します。
今日OpenSSLが広く使用されていることと、公式のQUIC+HTTP/3サポートの状況を踏まえるとQUICを有効にするための簡単でスケーラブルなオプションを提供することが正しい方向への一歩であると私たちは信じています。また、これによりHTTP/3の採用が促進され、貴重な意見が得られると考えています。最も重要なことですが、OpenSSL互換レイヤーはより堅牢でスケーラブルなソリューションを私たちの企業ユーザーとNGINXコミュニティ全体に提供する上で力になると私たちは信じています。
注:OpenSSL互換レイヤーの提供によりNGINXユーザーは簡単でスケーラブルなオプションを利用できるようになりますが、これまで同様、BoringSSL、quicTLS、LibreSSLなどのサードパーティライブラリをNGINXで使用することもできます。どの方法が適切かについてはどれが最も要件に合っているか、またライブラリをコンパイルおよび管理する依存性にどの程度慣れているかを考慮して判断してください。
0-RTTとはTLSハンドシェイクが完了する前にクライアントがアプリケーションデータを送信できるようにするQUICの機能です。0-RTT機能は以前の接続でネゴシエートされたパラメーターを再利用することで実現します。クライアントは重要なパラメーターを記憶し、サーバーが同じ情報を復元できるようにするTLSセッションチケットをサーバーに提供します。
この機能はQUICの重要な部分ですがOpenSSL互換レイヤーではまだサポートされていません。0-RTTを必要とする特殊なユースケースの方は是非ご意見をお聞かせください。今後のロードマップの参考にいたします。
NGINXのOpenSSL互換レイヤーはNGINX Open SourceからまたはNGINX Plusの30日間無料トライアルからご利用可能です。皆様のお役に立てれば幸いです。ご意見お待ちしております。
QUIC+HTTP/3とOpenSSLを使用したNGINXの詳細については、以下のリソースを参照してください。
"This blog post may reference products that are no longer available and/or no longer supported. For the most current information about available F5 NGINX products and solutions, explore our NGINX product family. NGINX is now part of F5. All previous NGINX.com links will redirect to similar NGINX content on F5.com."