Cloudflare Worker fetch在workers.dev正常 自有域名报525 SSL错误
故障根因
当Worker绑定到自有域名运行时,Cloudflare默认会将内部fetch请求的SNI(SSL握手阶段用于指定目标服务域名的字段)覆盖为当前用户访问的自有域名(即foo.mydomain.com),而非你请求的第三方站点域名something.com。第三方站点的SSL证书未覆盖你的自有域名,因此SSL握手校验失败,返回525错误。
你在本地wrangler dev和workers.dev子域名环境下运行时,Cloudflare不会触发该SNI覆盖逻辑,因此请求可以正常执行。
你此前尝试的两个方案均未命中问题核心,因此无效:
- 域名SSL页面规则仅控制用户访问你的站点时,Cloudflare到你源站的SSL通信模式,和Worker内部发往第三方的请求无关
- 手动指定HTTP层的Host头不影响SSL握手阶段的SNI值,无法解决SSL握手失败问题
修复方案
发起fetch请求时,通过Cloudflare Worker专属的cf参数强制指定SNI为目标第三方域名即可:
return await fetch('https://something.com/someResource', { cf: { sni: 'something.com' } })
内容的提问来源于stack exchange,提问作者Killerpixler
相关产品推荐
相关产品推荐

