説明
HTTP/2 は多重化などにより Web 通信の効率を高められます。無効であること自体は暗号化や認証の欠如を意味せず、HTTP/1.1 も HTTPS で保護できます。サービスでの HTTP/2 の必要性とクライアントの対応状況を確認してください。
想定される影響
HTTP/2 が必要なサービスでは、無効化により期待する転送効率やプロトコル要件を満たせない場合があります。
対処方法
必要なアプリに site_config.http2_enabled = true を設定し、実際のクライアント接続を試験してください。HTTPS 専用設定、最小 TLS バージョン、証明書は別途管理してください。クライアント証明書を使う場合は、TLS 再ネゴシエーションが必要なモードや除外パスとの互換性も確認してください。
例
AzureRM 3.x の従来の azurerm_app_service の抜粋です。現在の Linux・Windows Web App リソースにも HTTP/2 オプションがあります。
変更前
hcl
resource "azurerm_app_service" "example" {
name = "example-app-service"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
app_settings = {
"SOME_KEY" = "some-value"
}
}
変更後
hcl
resource "azurerm_app_service" "example" {
name = "example-app-service"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
app_settings = {
"SOME_KEY" = "some-value"
}
site_config {
dotnet_framework_version = "v4.0"
scm_type = "LocalGit"
min_tls_version = 1.2
http2_enabled = true
}
}
変更後は HTTP/2 を有効にし、最小 TLS バージョンを 1.2 に指定します。実際に HTTP/2 が選択されるか確認してください。この設定だけで平文 HTTP が拒否されるわけではありません。