php 通过SMTP连接到Amazon SES时,Web服务器未使用TLS 1.2

mrwjdhj3  于 2023-11-16  发布在  PHP
关注(0)|答案(1)|浏览(139)

我收到一封电子邮件,指出我们的服务器需要更新,以便在通过SMTP向Amazon SES发送电子邮件时使用TLS 1.2。我已经查看了所提到的服务器,所有涉及的层似乎都支持TLS 1.2。请参阅以下详细信息:

Ubuntu 16.04.3 LTS
OpenSSL 1.0.2g
PHP 7.1
Laravel 5.5
Swiftmailer v6.0
Sendmail 8.15.2

字符串
以上所有都支持TLS 1.2,所以我不确定为什么SES报告TLS 1.0/1.1握手。
我正在使用以下命令使用TCPdump监视TLS < 1.2连接:

$ tcpdump "tcp port 587 and (tcp[((tcp[12] & 0xf0) >>2)] = 0x16) && (tcp[((tcp[12] & 0xf0) >>2)+9] = 0x03) && ( (tcp[((tcp[12] & 0xf0) >>2)+10] = 0x01) || (tcp[((tcp[12] & 0xf0) >>2)+10] = 0x02))" -X


得到这个结果的一部分:

"0x0050:  e941 7b4f a11f 3444 4f57 4e47 5244 0020  .A{O..4DOWNGRD.."


我假设DOWNGRD一定意味着回到1.1或1.0。
但是跑步:

$ openssl s_client -crlf -starttls smtp -connect email-smtp.eu-west-1.amazonaws.com:587 -tls1_2


会导致:

SSL-Session:
Protocol  : TLSv1.2
Cipher    : ECD........


看来我可以直接建立联系。
有没有人能告诉我为什么会发生这种情况,或者提出任何命令来帮助识别问题?

0x6upsns

0x6upsns1#

https://github.com/laravel/framework/discussions/41075#discussioncomment-7499514
我没有使用TLS,而是切换到了上面评论中提到的SSL,它工作了!

相关问题