Squarespace/Heroku/QuotaGuard Static环境下SSL证书识别问题咨询
解决Squarespace SSL识别异常与Google搜索HTTP索引问题
问题根源
你的架构中,QuotaGuard Static作为流量中转层,Squarespace的DNS检测直接指向QuotaGuard的静态IP,但该IP未部署你的网站SSL证书,导致Squarespace判定SSL不可用;Google索引HTTP则是因为初始爬取链路的协议不统一,加上反向代理的头信息配置缺失,未让Django和Google正确识别HTTPS。
针对Squarespace SSL识别的解决方法
方法1:改用CNAME记录替代A记录(推荐)
放弃QuotaGuard静态IP的A记录配置,在Squarespace的DNS设置中添加CNAME记录,将域名指向Heroku应用的自定义域名(如your-app.herokuapp.com):
- 登录Squarespace后台,进入「设置」→「域名」→「DNS设置」
- 删除原有的A记录,添加新的CNAME记录:主机名填
www(或根域,部分域名支持CNAME flattening),值填你的Heroku应用域名 - 保存后等待DNS生效(通常1-24小时),Squarespace会直接检测Heroku上的SSL证书,解决识别问题
方法2:在QuotaGuard上配置SSL证书
若你需要保留静态IP(如IP白名单需求),联系QuotaGuard技术支持,将你的网站SSL证书(可从Heroku导出或通过Let's Encrypt申请)部署到QuotaGuard的静态IP节点上,实现SSL终止或透传。这样Squarespace检测IP时会读取到有效证书,消除SSL不可用的提示。
针对Google搜索HTTP索引的解决方法
- 配置Django强制HTTPS重定向
在Django项目的settings.py中添加以下配置:
# 强制重定向到HTTPS SECURE_SSL_REDIRECT = True # 识别反向代理传递的HTTPS头(QuotaGuard会发送X-Forwarded-Proto) SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') # 启用HSTS,强制浏览器后续仅用HTTPS访问 SECURE_HSTS_SECONDS = 31536000 SECURE_HSTS_INCLUDE_SUBDOMAINS = True SECURE_HSTS_PRELOAD = True
部署配置后,确保所有HTTP请求都会被重定向到HTTPS。
- 在Google Search Console中优化配置
- 添加并验证你的网站HTTPS版本(
https://www.bencritt.net) - 在「设置」→「首选域名」中选择HTTPS版本
- 提交HTTPS版本的站点地图,并触发全站强制爬取
- 清理站点内的HTTP链接
检查网站所有内部资源链接(图片、脚本、样式表、页面跳转等),确保全部使用HTTPS协议,避免混合内容问题影响Google对HTTPS站点的信任度。
补充说明
若使用Cloudflare作为中间层替代QuotaGuard,既能获得静态IP,又能通过Cloudflare的SSL证书让Squarespace直接识别,同时Cloudflare会自动处理HTTP到HTTPS的重定向,进一步简化配置。
内容的提问来源于stack exchange,提问作者Ben Crittenden
相关产品推荐
相关产品推荐

