我收到一封电子邮件,指出我们的服务器需要更新,以便在通过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........
型
看来我可以直接建立联系。
有没有人能告诉我为什么会发生这种情况,或者提出任何命令来帮助识别问题?
1条答案
按热度按时间0x6upsns1#
https://github.com/laravel/framework/discussions/41075#discussioncomment-7499514
我没有使用TLS,而是切换到了上面评论中提到的SSL,它工作了!