一些 ssl 证书 与 http2.0 可能让 iOS 设备请求 httpcode 421
- 2022-10-22 10:32:43
- 2031
- 分类:小程序
- 编辑:
事情是这样的,我们在开发微信小程序直播的相关工作,关于ios 系统不兼容的问题。
环境使用的是 Let’s Encrypt 泛域名证书。直播使用的是七牛云的demo,因为先完成测试才会进入真正的开发。这个七牛云的demo是 node 写的,我在服务器上用宝塔提供的工具进行了部署。
部署完成后,其他 PHP 部分的请求都还好用,不知道为啥,七牛云的demo也很好用。但是把他们的代码放到我的小程序里面就不好用了。
服务器接收到了请求,长的下面这个样子:
[03/Apr/2020:12:00:50 +0800] "GET /wechat/api/activeuser HTTP/2.0" 421 391 "https://servicewechat.com/wx3f5537d8cddc233a/0/page-frame.html" "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.12(0x17000c27) NetType/WIFI Language/zh_CN"
我们可以看出,这是个 http2.0 的请求。返回数据是下面这个样子:Misdirected Request
The client needs a new connection for this request as the requested host name does not match the Server Name Indication (SNI) in use for this connection.
Apache Server at live.guodapeng.icu Port 443这件事情看上去很不简单,相当可怕,发现是 Apache 问题。那么问题就有了方向,不断探索后返现下图内容:LoadModule http2_module modules/mod_http2.so注释掉这一行,重启服务。完成
环境使用的是 Let’s Encrypt 泛域名证书。直播使用的是七牛云的demo,因为先完成测试才会进入真正的开发。这个七牛云的demo是 node 写的,我在服务器上用宝塔提供的工具进行了部署。
部署完成后,其他 PHP 部分的请求都还好用,不知道为啥,七牛云的demo也很好用。但是把他们的代码放到我的小程序里面就不好用了。
服务器接收到了请求,长的下面这个样子:
[03/Apr/2020:12:00:50 +0800] "GET /wechat/api/activeuser HTTP/2.0" 421 391 "https://servicewechat.com/wx3f5537d8cddc233a/0/page-frame.html" "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.12(0x17000c27) NetType/WIFI Language/zh_CN"
我们可以看出,这是个 http2.0 的请求。返回数据是下面这个样子:Misdirected Request
The client needs a new connection for this request as the requested host name does not match the Server Name Indication (SNI) in use for this connection.
Apache Server at live.guodapeng.icu Port 443这件事情看上去很不简单,相当可怕,发现是 Apache 问题。那么问题就有了方向,不断探索后返现下图内容:LoadModule http2_module modules/mod_http2.so注释掉这一行,重启服务。完成
未经允许不得转载,或转载时需注明出处:茄番番 » 一些 ssl 证书 与 http2.0 可能让 iOS 设备请求 httpcode 421