HN🔥 46
💬 3
Go 1.24でHTTP/2 Cleartext(h2c)サーバーを構築する方法
dan_sbl
6日前
Go 1.24において、暗号化なしでHTTP/2を利用する「HTTP/2 Cleartext(h2c)」サーバーを実装する方法についてのトピックです。内部通信や特定のネットワーク環境で高速なHTTP/2の恩恵を受けるための設定手順やベストプラクティスが共有されています。
ちょうどrcloneでこれに該当するコミットをマージしたところだよ。https://github.com/rclone/rclone/commit/ad8a108453f3ce983fb6c3675ced694ff6bc3b53 なぜそうしたのかを探るのも面白いね。golang.org/x/net/http2/h2cにセキュリティ脆弱性があって、CIでgovulncheckが警告を出してたんだ。それでアップデートしたんだけど、今度はリンターからh2cサブパッケージが最新バージョンで非推奨になったって警告が出たから削除したってわけ。Goのエコシステムでは、こういう素晴らしいツールが安全性を高めるためにたくさん動いてるんだよね。とはいえメンテナンス側としては手間が増えるし、AIが発見したセキュリティ脆弱性の「カンブリア爆発」にはかなり頭を悩ませてるよ!
こういうブログ記事がすべてモデルに取り込まれて、「GCRでH2CをデプロイするためにTerraformを使って」って言うだけで、それが何をすべきか完璧に理解してくれるようになるなんて最高じゃないか。
AWS ALBはh2cをサポートしてないから注意して。クライアントとサーバーの両方が対応していても、ALBはh2cヘッダーを律儀に転送するだけで、アップグレードされたレスポンスを処理できずに失敗しちゃうんだ。