Stripe Live模式webhook无法访问AWS EC2负载均衡HTTPS端点求助
问题现象
Stripe TEST模式下本地webhook运行正常,切换到LIVE模式后Stripe返回如下错误:
HTTP status code 500 (Internal Server Error) Response Failed to connect to remote host手动访问webhook端点
domain/afterpayment可以正常触发EC2上的express日志,Stripe发起的请求无任何EC2日志生成,密钥、签名配置均确认无问题。
核心原因
问题本质是Stripe的LIVE模式请求在到达EC2之前的网络路径上被拦截,未进入express服务的处理逻辑,所以EC2无日志。常见拦截点如下:
- 负载均衡安全组/网络ACL未放行Stripe LIVE模式的公网出口IP段,仅允许了测试IP/个人IP入站
- 负载均衡绑定的HTTPS证书不符合Stripe的校验要求(自签、过期、域名不匹配、缺少证书链),TLS握手失败
- 域名前置的WAF、CDN等安全服务将Stripe请求判定为恶意流量直接拦截
- 公网域名解析错误,Stripe解析到的IP与你手动访问时解析到的有效IP不一致
修复方案
- 同步Stripe官方LIVE模式出口IP段,添加到负载均衡安全组的443端口入站允许规则,同时排查VPC网络ACL是否拦截了对应IP段的请求
- 校验webhook域名的HTTPS证书有效性,确认证书由公共信任的CA签发、域名完全匹配、证书链完整、在有效期内
- 若使用WAF、CDN等防护服务,将Stripe IP段加入防护规则白名单,排查防护日志是否存在拦截记录
- 开启负载均衡访问日志,确认Stripe的请求是否到达负载均衡层,定位具体拦截节点
- 使用公网环境的服务器(非当前VPC内、非你本地网络)发起curl请求模拟Stripe webhook调用,复现问题验证修复效果
内容的提问来源于stack exchange,提问作者Vlad Danila
相关产品推荐
相关产品推荐

