在Windows上追踪到了Shapecast Engine下载失败的问题,该问题从我下载并激活的那一刻起就一直存在。

界面报错显示“无法访问下载服务器”,并建议检查杀毒软件/DNS过滤,但shapecast-core.log中的底层错误是:

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1016)

端点:
https://pub-44***************.r2.dev

DNS、Windows防火墙及直接HTTPS连接均正常。curl也能成功访问该端点。

更重要的是,Shapecast捆绑的Python根据SSL实现的不同表现也不同:

requests.get() → TLS成功
urllib.request.urlopen()CERTIFICATE_VERIFY_FAILED

捆绑Python的默认SSL路径解析为:

C:\Program Files\Common Files\SSL\cert.pem

设置:

SSL_CERT_FILE=D:\Shapecast\core-runtime\python\Lib\site-packages\certifi\cacert.pem

可修复证书验证——urllib随后成功完成TLS并访问R2(对存储桶根目录返回403,符合预期)。

看来包下载器依赖的是Python/OpenSSL的默认CA路径,而非Shapecast捆绑的certifi CA包。

此外,或许值得修改界面错误处理逻辑,避免将CERTIFICATE_VERIFY_FAILED误报为通用的杀毒软件/DNS连接问题。