テックブログ

AlmaLinuxの標準nginxでHTTP/3(QUIC)を有効化する最小構成|Let’s Encrypt対応

こんにちは。技術部のtuouraです。

以前、Ubuntu Server 16.04 と Let’s Encrypt を使って「お手軽に HTTP/2 対応の WEB サーバーを作る」という記事を書かせていただきましたが、今回はその進化形とも言える HTTP/3 についてお話ししようと思います。
少し前までは、特定のレポジトリから導入した Nginx でないと HTTP/3 対応は難しかったのですが、いつのまにか RHEL 系のデフォルトパッケージでも利用できるようになっていました。まさに「時代の進化」ですね。

必要な構成を確認する

以下の検証環境を用意しました。

  • サーバーOS: AlmaLinux 10(最新の RHEL 系 OS をチョイスしました)
  • ドメイン: 正引き可能なドメイン名(SSL 証明書の取得に必須です)

またHTTP/3はUDPポートの443を使う為、ファイアウォール/パケットフィルタは、以下のポートを解放しておきます。

  • TCPポート:80/443
  • UDPポート:443

パッケージの導入

まずは OS 標準のレポジトリ(appstream)から Nginx を導入します。

導入後、nginx -V でnginxのconfigureオプションを確認します。
[–with-http_v3_module]が含まれているので、HTTP/3が利用可能な事が確認出来ます。

SSL証明書の取得

HTTP/3 には正規の SSL 証明書が欠かせません。以前の記事でも紹介した通り、Let’s Encrypt を活用して無料で取得していきましょう。 今回は EPEL レポジトリから Certbot を導入します。

取得の詳細は、弊社の以前のブログ記事「Let’s Encryptで無料SSL設定」も参考にしてみてください。

nginxの設定ファイルの作成

HTTP/3 を有効にするための最小構成ファイルを作成します。以前 HTTP/2 の設定で listen 443 ssl http2 と追記したように、今回は quic に関する記述がポイントになります。
locationやrootなどは指定していないので、必要な際は適宜追加をいただければと思います。

テストを行ってから起動し、UDP ポートで Listen されているか確認します。

外部サイトでHTTP/3アクセス確認

続けて外部チェックサイト[http3check.net]でHTTP/3が有効になっているか確認してみましょう。

https://http3check.net

白いボックスに設定したドメイン名を入れてCHECK!
QUIC is supported / HTTP/3 is supported が表示されたらOKです。

非常に簡単に出来ましたね!

設定の際の忘備録

かなり簡単にまとめましたが、http3check.netでは以下の様なエラーが出て、2時間近く悩みました。

Server does not advertise any alternative services

原因は IPv6 の設定 でした。ドメインに AAAA レコードを設定していたものの、サーバー側で IPv6 が無効なままだったため、チェックサイトが IPv6 経由でアクセスしようとして失敗していたようです。
またIPv6でアクセス出来ない際に、自動的にIPv4でHTTPS/HTTP1.1に切り替わりアクセスしている様で、アクセスログにも記録がある事から、更に原因調査に時間がかかってしまいました。

[http3check.net]では、ADVANCEのタブに切り替える事でIPアドレス、ポート番号、ドメイン名を指定できるので、上手くチェックが通らない際は、試してみてください。

最後に

いかがだったでしょうか? Nginx 1.26 系では、驚くほど簡単に HTTP/3 環境が構築できるようになっています。Google が推進する最新プロトコルを導入することは、表示速度の向上だけでなく、将来的な SEO(ページランク)への好影響も期待できるかもしれません。

なお、本記事で紹介した AlmaLinux 10 や Nginx 1.26.3 の詳細な動作仕様については、最新のドキュメントも併せてご確認ください。

最後までお読みいただき、ありがとうございました。

この記事をシェアする

  • facebook
  • twitter
  • hatena
  • line
URLとタイトルをコピーする

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください