在入口网关侧HTTPS中禁用HTTP/2

如果您的客户端使用HTTPS,且客户端对于HTTP/2的支持存在问题,但是不便修改,可以在ASM网关侧禁用HTTP/2协议。本文介绍如何在入口网关侧HTTPS中禁用HTTP/2。

前提条件

步骤一:确认默认配置

执行以下命令,访问ASM网关,验证当前的ALPN协议最终使用HTTP/2。

curl -k -H Host:b.aliyun.com --resolve b.aliyun.com:443:${ASM网关IP地址}  https://b.aliyun.com/status/418 -v

预期输出:

7FBF9864-589F-4a62-BB78-E3ECF9C206C2.png

预期输出表明客户端提供的ALPN列表有HTTP/2和HTTP/1.1。默认情况下,网关优先使用HTTP/2。

步骤二:在使用HTTPS协议时,禁用HTTP/2

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理

  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择ASM网关 > 入口网关

  3. 入口网关页面右侧,单击目标网关对应的查看YAML,在编辑对话框的spec字段下,配置podAnnotations,然后单击确定

    podAnnotations:
        proxy.istio.io/config: |
          httpsHttp2Disabled: true
    说明

    该配置会导致网关重启。

步骤三:验证HTTP/2是否在HTTPS中被禁用

执行以下命令,访问ASM网关。

curl -k -H Host:b.aliyun.com --resolve b.aliyun.com:443:${ASM网关IP地址}  https://b.aliyun.com/status/418 -v

预期输出:

2.png

预期输出表明客户端提供的ALPN列表只有HTTP/1.1,HTTP/2禁用成功。