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

如何配置AWS ALB规则拒绝SSL证书过期的流量?

在ALB证书过期时丢弃流量的实现方案

核心思路

ALB本身不会自动检测自身证书过期并主动丢弃流量,但可以通过自动化监控+配置调整的方式实现需求:当关联的SSL证书过期时,修改ALB监听器行为,直接关闭连接或拒绝流量。

具体实现方法

方法1:AWS Config + Lambda 自动化处理

  • 利用AWS Config内置规则监控证书状态:
    1. 创建AWS Config规则,选择内置的acm-certificate-expiration-check规则,将过期阈值设置为0天(即仅触发已过期的证书)。
    2. 为该规则配置SNS主题,当规则触发(检测到过期证书)时发送通知。
    3. 关联Lambda函数到SNS主题,函数逻辑如下(用boto3实现):
      • 调用describe-certificates获取过期证书的ARN。
      • 调用describe-listeners定位到使用该证书的ALB监听器。
      • 调用modify-listener修改监听器的默认动作:设置为fixed-response,状态码指定为444。这个状态码会让ALB直接关闭TCP连接,不返回任何响应,达到“丢弃流量”的效果。

方法2:定时脚本主动检查

  • 编写脚本(Python/Shell均可)定期执行以下操作:
    1. 调用AWS API(ACM或IAM证书存储接口)检查目标证书的过期时间。
    2. 若检测到证书已过期,立即调用ALB的modify-listener接口,将对应监听器的默认动作改为返回444状态码。
    3. 用CloudWatch Events或crontab定期触发脚本,确保及时发现并处理过期证书。

关键注意事项

  • 确保执行操作的IAM角色拥有足够权限:包括ACM证书读取权限、ALB监听器修改权限、Lambda执行权限(若用方法1)。
  • 如果ALB使用的是上传到IAM的自定义证书(非ACM管理),需调整证书状态检查逻辑,通过list-server-certificates接口获取证书过期信息。
  • 444状态码虽为非标准HTTP状态码,但AWS ALB支持返回该值,客户端会收到连接被强制关闭的通知,不会得到响应内容,完全符合“丢弃流量”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:10:19