WPCLI更新WordPress插件用HTTP而非HTTPS导致下载失败如何解决
错误成因说明
cURL错误77本质是cURL工具读取本地SSL根证书库失败,常见原因包括系统根证书包缺失、证书文件权限配置错误、curl配置的证书路径不匹配。HTTP下载链接跳转HTTPS后证书校验失败是该错误的典型触发场景。
修复方案
方案1:修复系统根证书(根因解决)
对应不同操作系统执行命令更新根证书包:
Debian/Ubuntu系列:sudo apt install ca-certificates -y sudo update-ca-certificatesCentOS/RHEL系列:
sudo yum install ca-certificates -y sudo update-ca-trust force-enable执行完成后运行
curl -I https://downloads.wordpress.org确认无SSL报错即可。方案2:强制WP CLI全局使用HTTPS下载更新
编辑站点根目录下的wp-config.php文件,添加以下两行配置:// 强制所有WordPress HTTP请求走SSL协议 define( 'WP_HTTP_FORCE_SSL', true ); // 强制更新类请求使用HTTPS源 define( 'CORE_UPGRADE_SSL', true );保存后再次执行
wp plugin update akismet即可。
如果仅需临时生效无需修改配置,可直接执行命令:wp plugin update akismet --http='{"ssl":{"verify":true}}'方案3:手动指定HTTPS源更新
直接传入插件的HTTPS下载地址强制覆盖安装,可绕开源地址解析逻辑:wp plugin install https://downloads.wordpress.org/plugin/akismet.4.1.11.zip --force
额外排查建议
如果以上方案未解决问题,可先将WP CLI升级到最新版本排除版本兼容问题:wp cli update,再执行wp plugin update重试。
测试环境可临时添加--http='{"ssl":{"verify":false}}'参数跳过SSL校验验证问题,但该操作存在安全风险,生产环境禁止使用。
内容的提问来源于stack exchange,提问作者pi.
相关产品推荐
相关产品推荐

