Fastly CDN如何通过TLS连接App Engine Flexible的ghs.googlehosted.com源站?
首先要澄清:ghs.googlehosted.com本身是支持TLS/HTTPS的,你遇到的问题大概率出在配置层面,而非源站不支持。下面是几个针对性的解决思路:
检查Fastly源站的协议与端口配置
在Fastly的后端源站设置中,务必确认选择HTTPS协议,端口设为443。很多时候问题就出在这里——如果之前用的是HTTP(端口80),切换到TLS时需要同步更新协议和端口选项。开启SNI支持
ghs.googlehosted.com是Google托管的共享主机名,多个服务共用该域名,因此Fastly发起TLS连接时必须开启Server Name Indication (SNI)。在Fastly的源站配置里找到SNI相关选项并启用,这样Fastly才能正确向源站请求对应证书。验证源站的TLS连通性
先在本地测试ghs.googlehosted.com的TLS是否正常,用命令行工具执行:openssl s_client -connect ghs.googlehosted.com:443如果输出中出现
Verify return code: 0 (ok),说明源站TLS正常。若有证书错误,可能是本地网络环境问题;如果本地都无法连通,需要检查你的网络是否能正常访问Google服务。考虑切换到App Engine自定义域名
若仍有问题,可以给你的App Engine Flexible应用配置自定义域名(在Google Cloud控制台的「App Engine > 设置 > 自定义域名」中操作)。自定义域名会自动配置Google管理的SSL证书,将其作为Fastly源站后,TLS连接会更稳定,也更便于排查问题。确认Fastly的TLS版本兼容性
ghs.googlehosted.com支持TLS 1.2和TLS 1.3,确保Fastly使用的TLS版本与之兼容。你可以在Fastly的服务配置里检查TLS版本设置,避免启用过时的TLS 1.0/1.1。
另外,如果你在Fastly中配置了强制缓存回源的规则,也要确保这些规则没有强制使用HTTP协议回源。
内容的提问来源于stack exchange,提问作者Alex

