微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何验证是否使用签名版本4

如何解决如何验证是否使用签名版本4

来自Amazon AWS的电子邮件指出:

从2020年10月1日开始,Amazon SES仅支持请求 使用签名版本4签名。

您可以通过以下方式轻松识别使用签名版本3的API请求: 查看请求标头。使用签名的请求 版本3与以下示例类似:X-Amzn-Authorization: AWS3-HTTPS AWSAccessKeyId = AKIAIOSFODNN7EXAMPLE,算法= HMACSHA256,签名= lBP67vCvGl ...

我已经通过composer安装了“ aws / aws-sdk-PHP”。
我试图找出SES的请求标头是签名版本3还是4。

我尝试通过Illuminate\Mail\Events\MessageSent对象$event->message->getHeader()转储Swift_Mime_SimpleHeaderSet内容
但是它不包括SES sdk的请求版本。

问题:
有人可以告诉我如何转储传出的aws ses sdk请求,以便我可以在标头中看到所使用的版本。 谢谢。

解决方法

如果有人感兴趣,最后可以通过追溯堆栈来做到这一点。
通过命令发送邮件后,我回溯了堆栈并可以看到包含Authorization: AWS4-HMAC-SHA25的原始请求,确认了签名版本4。

Mail::to($receiver)->send($mailable);
dump(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,50));

确保已将ses service调试设置为true:
config/services.php

   'ses' => [
        'key'    => env('SES_KEY'),'secret' => env('SES_SECRET'),'region' => 'us-west-1','debug'  => true,],

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。