Kindle越狱后执行curl脚本遇SSL协议版本错误的解决咨询
解决Kindle旧版Curl TLS协议版本不兼容问题
方案1:强制curl使用兼容的旧版TLS协议
你的curl版本过低,不支持服务器要求的TLS版本,先尝试强制指定旧版TLS协议,这是最快捷的方法:
curl --tlsv1.0 https://kindle-pindle.herokuapp.com/ -o status.png
如果上面的命令不行,再试指定TLSv1.1:
curl --tlsv1.1 https://kindle-pindle.herokuapp.com/ -o status.png
方案2:编译静态版curl到Kindle
因为Kindle没有包管理工具,只能手动编译静态链接的curl(包含新版OpenSSL),然后传到设备上使用:
- 准备一个armv7l架构的Linux环境(比如用Docker拉取
arm32v7/debian镜像,或者用树莓派这类arm设备) - 编译静态版OpenSSL:
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz tar zxf openssl-1.1.1w.tar.gz cd openssl-1.1.1w ./Configure linux-armv4 no-shared --prefix=/tmp/ssl make && make install - 编译静态版curl:
wget https://curl.se/download/curl-7.88.1.tar.gz tar zxf curl-7.88.1.tar.gz cd curl-7.88.1 ./configure --prefix=/tmp/curl --with-ssl=/tmp/ssl --disable-shared make && make install - 将编译好的
/tmp/curl/bin/curl通过USB传到Kindle的/mnt/us目录,然后在Kindle终端里赋予执行权限:chmod +x /mnt/us/curl - 使用新版curl下载:
/mnt/us/curl https://kindle-pindle.herokuapp.com/ -o status.png
方案3:用静态版wget替代(如果curl方案无效)
如果curl强制协议也不行,试试用wget:
- 同样在armv7l环境编译静态版wget,或者找现成的armv7l静态wget二进制文件
- 传到Kindle的
/mnt/us目录,赋予执行权限后尝试:/mnt/us/wget --secure-protocol=TLSv1_0 https://kindle-pindle.herokuapp.com/ -O status.png
方案4:本地中转HTTP服务(适合有个人服务器的用户)
如果上面的方法都无法实现,可以在自己的VPS上搭建一个简单的中转服务:
- 在VPS上写个脚本定时拉取目标图片:
curl https://kindle-pindle.herokuapp.com/ -o /var/www/html/status.png - 用nginx或apache把图片目录做成HTTP访问的静态资源
- Kindle上用旧版curl访问HTTP地址即可:
curl http://你的VPS地址/status.png -o status.png
内容的提问来源于stack exchange,提问作者kami
相关产品推荐
相关产品推荐

