本誌の読者であればほぼご存じだと思うが、HTTP(Hypertext Transfer Protocol)には大きく3つのバージョンがある。そのうち最新のHTTP/3は2022年6月に勧告された。以来2年以上経過しているが、意外に浸透していない。
米Cloudflareの「Cloudflare Radar」のデータを見ると、この1年間のHTTPリクエストにおける占有率はおおむね30%前後で推移している。なぜ普及が進まないのだろうか。どうやらHTTP/3を使うには幾つかの壁を乗り越える必要があるのだ。
正当な電子証明書が必須
ちょっとした実験のためにHTTP/3対応のWebサーバーを立ててみようとしたが、意外とこれが面倒だった。まず正当な電子証明書が必要となったのだ。自己署名証明書、いわゆる「オレオレ証明書」だと、WebブラウザーでアクセスしてもHTTP/3でやり取りしてくれなかった。
ちゃんとした電子証明書を取得するには、ドメインを取得するところから始めなければいけない。またセキュリティーを考えると、LAN(Local Area Network)内にサーバーを置いて実験をしたい。無防備なWebサーバーをインターネットにさらすのは避けたいからだ。
実際問題としてHTTP/3対応のWebサーバーを公開する前にローカル環境で検証するのは当然だと思うが、そのための手段がそれなりに面倒だ。
そもそも証明書を発行するには、そのドメインが申請者によって管理されていることを検証する必要がある。これが公開サーバーであれば、申請されたドメインのサーバーに発行者がアクセスして必要な情報を備えているかどうかを検証できる。
しかしローカル環境だとそうはいかないので、DNS(Domain Name System)サーバーに必要な情報を置くことになる。無償で電子証明書を発行してくれるLet's EncryptはDNSサーバーでの検証に対応しているが、他の証明書発行サービスだと対応していない場合もあるだろう。
極め付きは適切なWebサーバーソフトの選択が難しいことだ。普通に考えれば「nginx」や「Apache」といった、よく使われているWebサーバーソフトを使おうと思うだろう。
しかしnginxの最新版でもまだHTTP/3の実装は「experimental」、つまり実験的な実装としている。Apacheに至ってはHTTP/3にまだ対応していない。