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

AWS SES TLS 1.0/1.1告警处理:.NET应用如何启用TLS 1.2?

解决.NET Framework 4.7.2应用通过AWS SES SMTP发送邮件时强制使用TLS 1.2的问题

针对你遇到的AWS SES检测到TLS 1.0连接的问题,结合你的.NET Framework 4.7.2环境,可通过以下几种方式强制启用TLS 1.2:

1. 在代码中显式指定TLS版本

在创建SmtpClient实例前,添加代码设置安全协议为TLS 1.2(可同时兼容未来的TLS 1.3):

// 强制使用TLS 1.2及以上版本
System.Net.ServicePointManager.SecurityProtocol = 
    System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls13;

// 原有的邮件发送代码
NetworkCredential nwc = new NetworkCredential(
    System.Configuration.ConfigurationManager.AppSettings["GenesisMailCredentialsEmail"], 
    System.Configuration.ConfigurationManager.AppSettings["GenesisMailCredentialsPassword"]);
SmtpClient smtp = new SmtpClient(
    System.Configuration.ConfigurationManager.AppSettings["GenesisMailSMTP"].ToString()) 
    { 
        Port = port, 
        UseDefaultCredentials = false, 
        Credentials = nwc, 
        EnableSsl = useSSL 
    };
smtp.Send(mail);

注意:确保useSSL变量的值为true,AWS SES SMTP要求启用SSL/STARTTLS。

2. 通过应用配置文件全局配置

无需修改代码,在web.config或app.config的<configuration>节点下添加以下配置,全局设置应用的安全协议:

<system.net>
  <settings>
    <!-- 指定仅使用TLS 1.2 -->
    <servicePointManager securityProtocol="Tls12" />
    <!-- 如需兼容TLS 1.3,可改为:securityProtocol="Tls12, Tls13" -->
  </settings>
</system.net>

3. 配置AWS Beanstalk服务器的系统级TLS设置

若上述方法仍未生效,需确保Beanstalk的Windows服务器系统级禁用TLS 1.0/1.1,强制使用TLS 1.2。可通过.ebextensions配置文件实现:

在应用根目录创建.ebextensions文件夹,新建tls-config.config文件,内容如下:

container_commands:
  # 禁用TLS 1.0服务器端
  01_disable_tls10_server:
    command: reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 0 /f
  # 禁用TLS 1.0客户端
  02_disable_tls10_client:
    command: reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" /v Enabled /t REG_DWORD /d 0 /f
  # 禁用TLS 1.1服务器端
  03_disable_tls11_server:
    command: reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 0 /f
  # 禁用TLS 1.1客户端
  04_disable_tls11_client:
    command: reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /v Enabled /t REG_DWORD /d 0 /f
  # 启用TLS 1.2服务器端
  05_enable_tls12_server:
    command: reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
  # 启用TLS 1.2客户端
  06_enable_tls12_client:
    command: reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 1 /f

部署此配置后,Beanstalk服务器会自动修改注册表设置,强制系统仅使用TLS 1.2。

额外验证步骤

  • 确认SES SMTP端点配置正确:eu-west-1区域的端点为email-smtp.eu-west-1.amazonaws.com
  • 检查SMTP端口:推荐使用587(STARTTLS)或465(SSL),确保端口与EnableSsl设置匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:16:25