我们项目在本地测试发送短信一切正常;把项目打包到docker容器中运行就会报错 Specified signature is not matched with our calculation;什么原因
该错误是网关层面的问题,含义是 签名不通过 / 网关签名校验失败 ;
具体为: 客户端计算的签名和网关计算的签名不一致 。
该错误常出现在用户没有使用官方的SDK来生成请求 ,而是自己手动计算签名构造网络请求进行发送时,签名的计算方式出现问题 。
自己计算签名并构造HTTP请求,请参见签名机制,并参考相应SDK代码里面的实现方式 。
优先使用官方的SDK来构造请求,这样既快捷并且不容易出错,大部分语言都有对应的 SDK,包括:Java、Python、PHP、NodeJS、.NET,详情请参见API概览。
使用官方SDK构造签名和封装HTTP请求,请检查下面两种情况 :
本地系统时钟是否正确,因为签名的计算会带时间戳,如果时钟不对可能会导致签名失败 。
本地系统编码是否是UTF-8 ,因为签名计算过程使用UTF-8编码,其它编码肯可能会导致编码失败和签名不一致 。
参考文档https://help.aliyun.com/document_detail/39992.html?spm=a2c4g.434791.0.0.4abd4ee5YmLznR
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。