升级Java17后,AWS SES SMTP无法使用TLSv1.3的问题求助
AWS SES SMTP 无法使用 TLSv1.3 发送邮件的问题
我有一个基于JavaMail连接AWS SES SMTP服务器发送邮件的Java应用,升级到Java17后希望默认使用TLSv1.3,已通过以下代码设置协议:
javaMailProperties.setProperty("mail.smtp.ssl.protocols","TLSv1.3 TLSv1.2");
但实际发送邮件时仍使用TLSv1.2。
验证Java环境支持TLSv1.3
我通过以下代码验证了当前Java环境支持TLSv1.3:
try{ logger.info("List of supported SSL Protocols - " + Arrays.toString(SSLContext.getDefault().getSupportedSSLParameters().getProtocols())); } catch (Exception e){ logger.error("SSLContext Error" + e); }
输出结果确认支持TLSv1.3:
[TLSv1.3, TLSv1.2, TLSv1.1, TLSv1, SSLv3, SSLv2Hello]
OpenSSL连接测试结果
使用openssl命令尝试通过TLSv1.3连接AWS SES SMTP服务器:
openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-east-1.amazonaws.com:587 -tls1_3
返回错误:
4582575616:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:ssl/record/rec_layer_s3.c:1544:SSL alert number 70
改用TLSv1.2协议则可以正常建立连接:
openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-east-1.amazonaws.com:587 -tls1_2
输出结果:
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, CN = Amazon RSA 2048 M01 verify return:1 depth=0 CN = email-smtp.us-east-1.amazonaws.com verify return:1 250 Ok 451 4.4.2 Timeout waiting for data from client.
疑问
我在AWS控制台的SES模块中未找到任何与启用TLSv1.3相关的配置选项,请问无法使用TLSv1.3的原因是什么?AWS SES SMTP是否支持TLSv1.3?
内容的提问来源于stack exchange,提问作者Gowthaman
相关产品推荐
相关产品推荐

