You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 API Manager 2.6.0集成AWS SES无法使用TLSv1.2求助

解决WSO2 API Manager 2.6.0强制邮件客户端使用TLSv1.2的方案

针对WSO2 APIM 2.6.0(Java8环境)连接AWS SES发邮件时因TLS版本过低被拒绝的问题,以下是经过验证的解决步骤:

1. 完善邮件适配器配置

打开<APIM_HOME>/repository/conf/output-event-adapters.xml,找到邮件适配器的配置块,确保添加/启用以下关键属性:

  • 启用STARTTLS并强制要求:这是AWS SES SMTP端口(587)的必要配置
  • 明确指定TLSv1.2协议

示例完整配置片段:

<adapterConfig type="email">
    <property key="mail.smtp.host">email-smtp.<region>.amazonaws.com</property>
    <property key="mail.smtp.port">587</property>
    <property key="mail.smtp.auth">true</property>
    <property key="mail.smtp.starttls.enable">true</property>
    <property key="mail.smtp.starttls.required">true</property>
    <property key="mail.smtp.ssl.protocols">TLSv1.2</property>
    <property key="mail.smtp.user">你的SES SMTP用户名</property>
    <property key="mail.smtp.password">你的SES SMTP密码</property>
</adapterConfig>

2. 添加JVM全局TLS强制参数

修改<APIM_HOME>/bin/wso2server.sh(Linux)或<APIM_HOME>/bin/wso2server.bat(Windows),在JVM启动参数中追加以下内容:

# Linux环境在JAVA_OPTS中追加
JAVA_OPTS="$JAVA_OPTS -Djdk.tls.client.protocols=TLSv1.2 -Dmail.smtp.ssl.protocols=TLSv1.2 -Dhttps.protocols=TLSv1.2"
:: Windows环境在JAVA_OPTS中追加
set JAVA_OPTS=%JAVA_OPTS% -Djdk.tls.client.protocols=TLSv1.2 -Dmail.smtp.ssl.protocols=TLSv1.2 -Dhttps.protocols=TLSv1.2

注意:仅添加-Dhttps.protocols无效,因为邮件客户端使用SMTP协议,需同时指定JDK客户端全局TLS协议和SMTP专属的TLS参数。

3. 确保Java8未禁用TLSv1.2

检查<JAVA_HOME>/jre/lib/security/java.security文件,确认jdk.tls.disabledAlgorithms条目里没有包含TLSv1.2,如果有则移除该内容并保存。

4. 清理缓存并重启服务

  • 删除<APIM_HOME>/repository/tmp和<APIM_HOME>/repository/work目录下的所有缓存文件
  • 重启WSO2 APIM服务,让配置生效

5. 验证功能

触发密码重置流程,确认邮件能成功发送,不再出现TLS版本相关的报错。

内容的提问来源于stack exchange,提问作者andyEngineering

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 01:16:06