OpenWrt环境下,由于wget不支持ssl/tls导致执行opkg update失败的解决方法
执行:
opkg update
显示:
wget: SSL support not available, please install one of the libustream-ssl-* libraries as well as the ca-bundle and ca-certificates packages.
提示opkg依赖的wget不支持ssl/tls。
此时需要下载支持ssl/tls的wget。但是无法通过opkg下载,因为opkg需要支持ssl/tls的wget,这就陷入了无限递归的问题中。
解决方法是先手动从OpenWrt的官网下载支持ssl/tls的wget:
https://archive.openwrt.org/releases/<version>/packages/<architecture>/packages/wget-ssl_<version>_<architecture>.ipk
其中architecture可通过执行:
opkg print-architecture
命令查看。
手动下载后,通过执行:
opkg install wget-ssl_<version>_<architecture>.ipk
安装支持ssl/tls的wget。完成后,可以通过执行:
ll /usr/bin/wget
确认wget已指向新安装的wget-ssl.
之后重新执行:
opkg update
如果成功,还则罢了,如果显示诸如:
opkg_download: Failed to download https://archive.openwrt.org/releases/<version>/packages/<architecture>/base/Packages.gz, wget returned 5.
可以继续追查,即直接执行:
wget https://archive.openwrt.org/releases/<version>/packages/<architecture>/base/Packages.gz
如果返回错误:
ERROR: cannot verify archive.openwrt.org’s certificate, issued by ‘CN=R3,O=Let’s Encrypt,C=US’:
Unable to locally verify the issuer’s authority.
To connect to archive.openwrt.org insecurely, use `–no-check-certificate’.
表示CA证书验证证书链失败。
我们可以通过跳过CA证书校验证书链来解决问题。请保证域名确实是archive.openwrt.org确认安全。暂不考虑DNS劫持……
执行:
vi /etc/opkg.conf
修改或追加:
option no_check_certificate
保存并退出。
之后再次执行:
opkg update
应该没有问题了,如果还有问题,请继续追查,并在解决后把解决方法发布出来,以帮助更多的人~
谢谢~