aria2 中文文档 下载 App

HTTPS 证书校验失败的几种处理办法

默认行为

从 1.1.0 起 aria2 默认校验 HTTPS 服务器证书(--check-certificate 默认 true)。校验失败会拒绝下载,这是正常的安全行为,先弄清原因再决定怎么处理。

常见原因与对策

原因一:构建没有可用的系统 CA 库。

部分源码编译的版本没有接入系统证书库。对策:给一份 CA 证书包:

aria2c --ca-certificate=ca证书包路径 --check-certificate "下载直链"

证书包需 PEM 格式(Linux 发行版一般自带,如 ca-certificates 包里的文件)。官方编译的 Windows 构建(WinTLS)与 macOS 构建(AppleTLS)直接用操作系统信任库,不需要这个参数。

原因二:内网自签名证书。

公司/家庭内网服务用自签证书,系统信任库里没有。对策:把该 CA 证书导入系统信任库,或用 --ca-certificate 指定该 CA 的 PEM 文件。

原因三:客户端证书场景。

服务器要求客户端出示证书时:

aria2c --certificate=客户端证书路径 "下载直链"

PKCS12(.p12/.pfx)要求导入密码为空;PEM 格式还要配 --private-key 指定私钥。注意 Windows 构建的 WinTLS 暂不支持 PEM。

原因四:时钟不对。

系统时间偏差大会导致证书"未生效/已过期"误报,校准时间即可。

临时关闭校验

aria2c --check-certificate=false "下载直链"

只建议在临时验证、完全可信的内网环境用——关闭后流量可能被中间人替换,下完务必自己校验哈希(见校验完整性)。长期方案永远是修好信任链而不是关校验。

RPC 服务同理

RPC 接口启用 TLS 用的是独立参数组合:--rpc-secure 配 --rpc-certificate 与 --rpc-private-key,证书格式要求同上,见开启 RPC。