使用wget脚本下载CORDEX模拟数据时OpenID Provider请求失败求助
我使用Ubuntu 20.04系统、Wget 1.20.3版本,通过ESGF官网提供的wget-20230527204009.sh脚本下载CORDEX模拟数据,已正确输入OpenID和密码,但执行脚本时出现**“HTTP request to OpenID Provider service failed”**错误。尝试执行bash ./wget-20230527204009.sh -H命令后仍无法完成下载,错误日志如下:
Running wget-20230527204009.sh version: 1.3.2
Use wget-20230527204009.sh -h for help.Script created for 11 file(s)
(The count won't match if you manually edit this file!)Enter your openid : https://esgf-data.dkrz.de/esgf-idp/openid/hchaabani@um6p
Enter password :snc_EUR-11_CNRM-CERFACS-CNRM-CM5_historical_r1i1p1_IPSL-WRF381P_v2_day_19510101-19551231.nc ...Downloading
Retrying....
ERROR : Retry failed.
download failed
snc_EUR-11_CNRM-CERFACS-CNRM-CM5_historical_r1i1p1_IPSL-WRF381P_v2_day_19560101-19601231.nc ...Downloading
ERROR : HTTP request to OpenID Provider service failed.
download failed
可能的解决方法
验证OpenID服务商可用性
直接在浏览器访问你的OpenID地址https://esgf-data.dkrz.de/esgf-idp/openid/hchaabani@um6p,确认该IDP服务是否正常响应。如果网站无法打开或加载缓慢,说明是服务端故障,需等待服务商恢复或更换其他ESGF节点的OpenID。升级Wget版本
你当前使用的Wget 1.20.3版本较旧,可能存在HTTPS握手或OpenID认证的兼容性问题。执行以下命令更新Wget:sudo apt update && sudo apt install --only-upgrade wget更新完成后重新运行下载脚本。
手动指定CA证书路径
部分系统可能存在CA证书缺失或路径配置错误,导致无法验证IDP的SSL证书。运行脚本时添加--ca-certificate参数指定系统CA证书路径:bash ./wget-20230527204009.sh --ca-certificate=/etc/ssl/certs/ca-certificates.crt若不确定证书路径,可通过
update-ca-certificates -v命令查看系统证书存储位置。临时禁用SSL证书验证(测试用)
若上述方法无效,可临时禁用SSL证书验证以排除证书问题(不建议长期使用),运行脚本时添加参数:bash ./wget-20230527204009.sh --no-check-certificate检查代理配置
如果你处于代理网络环境,需确保Wget已正确配置代理。临时设置环境变量:export http_proxy=http://your-proxy:port export https_proxy=https://your-proxy:port运行脚本后再取消代理:
unset http_proxy https_proxy
内容的提问来源于stack exchange,提问作者CHAABANI Hamid

