在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连接问题。
评论 (0)