错误出现的场景是这样的:
curl 访问url1的时候(header里面设置了Authorization认证),curl1做了重定向到了curl2, 由于curl1的Authorization header 会带到curl2 header里面,curl2的url参数中
也有认证信息,导致出现错误提示:“Only one auth mechanism allowed; only the X-Amz-Algorithm query parameter” 。
问题原因:
这个是由于低版本curl会导致出现这个错误:
参加bug说明https://curl.se/docs/CVE-2018-1000007.html
解决办法:
1.到官方下载最新版本curl源码编译;
2.使用其他库安装二进制包,操作如下:
操作参考文档:https://qiita.com/tkprof/items/5460b8d603cbbc542c8c
1)使用下面命令安装city-fan库。
# rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-2-1.rhel7.noarch.rpm
执行完后,需要 vim /etc/yum.repos.d/city-fan.org.repo 把[city-fan.org]中的enabled=0修改为enabled=1
2)使用命令yum info curl查看curl目前安装的是哪个版本,还可以看到可用的最新版本是哪个等。然后执行命令yum update curl
,可以把curl更新到最新版本。