老款小米电视的安卓版本过低缺失ISRG Root X1证书问题
- IT
- 13天前
- 12热度
- 0评论
最近抽空部署了一下肥羊的ALLINONE(是的它又上线了),大致步骤如下(细节省略5000字):
1、搞定一个境外手机号
2、用境外手机号注册telegram
3、telegram添加鉴权机器人:@newallinone_bot
4、搞定一个国内云服务不限流量的大带宽vps,安装ubuntu系统
5、访问Allinone使用说明:https://pan.v1.mk/每期视频中用到的文件分享/allinone二进制文件/使用说明.md
6、根据使用说明,打开在ALLINONE部署指令生成器,通过鉴权机器得到相应的密钥,然后在vps上部署docker及watchtower
7、配置nginx反代
8、申请ssl证书
9、电视端安装天光云影或tivimate,使用。
一通操作下来,使用正常了——但没有完全正常,有一台小米电视始终连接直播源失败。配置肯定没问题,检查网络也没有问题——那么问题只能处在电视本身。
反复尝试,最终从天光云影的连接失败的日志中找到了端倪:原来是ssl证书出了问题,老款的小米电视使用的仍然是安卓6或安卓7,它们不支持ISRG Root X1证书。而certbot默认的Let’s Encrypt从2024年开始就不再支持旧的根证书的交叉链了,所以老款小米电视就无法识别经过nginx反代域名的SSL证书了。
理论上,最理想的解决方式是更换为Buypass Go,只需要指定一个颁发证书的server地址就行。但实践下来没有那么简单:buypass.com已经被墙。而国内vps上妄图配置科学工具是风险极高的。那么只能退而求其次,使用zerossl。唯一增加的操作是,需要首先注册zerossl,并生成一个kid和HMAC Key。
取得kid和HMAC Key后,即可使用以下certbot命令来申请zerossl证书:
certbot --nginx \
--server https://acme.zerossl.com/v2/DV90 \
--eab-kid YOUR_KID --eab-hmac-key YOUR_HMAC_KEY \
-d YOUR_DOMAIN \
--agree-tos -m YOUR_EMAIL \
--cert-name YOUR_DOMAIN-zerossl
注意,上述大写部分替换你自己的。
搞定之后,可以用https://www.ssllabs.com/ssltest/来验证SSL的可用性。不出意外的话,可以看到Android 5.0–7.1.1的HandShake模拟顺利通过。
接下来就可以使用老版的小米电视成功获取直播源了。