Jenkins中SMTP升级至TLS 1.2配置求助(AWS SES环境)
解决Jenkins通过AWS SES发送邮件的TLS 1.2配置问题
AWS SES支持的TLS 1.2对应端口
AWS SES针对TLS 1.2提供两种端口配置方案:
- 端口587:标准STARTTLS端口,推荐使用此端口,通过STARTTLS机制将明文连接升级为TLS加密连接
- 端口465:SSL直连端口,需确保Jenkins的JVM强制使用TLS 1.2(旧JVM版本默认可能采用低版本TLS)
一、Extended Email Notification 插件具体配置步骤
- 进入Jenkins「系统管理」→「系统配置」,找到「Extended Email Notification」模块
- SMTP服务器填写对应区域的AWS SES端点(例如
email-smtp.us-east-1.amazonaws.com,根据你的AWS区域调整) - 推荐配置(端口587):
- 端口设置为
587 - 取消勾选「SSL」选项
- 勾选「Use TLS」选项(触发STARTTLS升级为TLS 1.2连接)
- 填入AWS SES的SMTP用户名和密码(注意:这是专门的SMTP凭证,不是IAM用户密码)
- 端口设置为
- 备选配置(端口465):
- 端口保持
465,勾选「SSL」选项 - 需配合下方JVM参数强制使用TLS 1.2,否则仍会出现低版本TLS报错
- 端口保持
二、强制Jenkins JVM使用TLS 1.2
如果使用端口465或配置587后仍报错,需修改Jenkins启动参数:
- 找到Jenkins的启动配置文件:
- Windows系统:通常为
jenkins.xml - Linux系统:通常为
/etc/default/jenkins或/etc/sysconfig/jenkins
- Windows系统:通常为
- 在JVM启动参数中添加以下两行:
-Dhttps.protocols=TLSv1.2 -Djdk.tls.client.protocols=TLSv1.2 - 重启Jenkins服务,使参数生效
三、验证与排查
- 保存配置后,点击「Test configuration by sending test e-mail」发送测试邮件验证
- 若仍失败,检查以下内容:
- AWS SES控制台中发件地址是否已完成验证
- SMTP凭证是否正确(可在AWS IAM控制台生成)
- Jenkins服务器出站端口587/465是否被防火墙或安全组拦截
内容的提问来源于stack exchange,提问作者Umesh
相关产品推荐
相关产品推荐

