修复由于子域上的 HSTS 而损坏的 link 跟踪?

Fix broken link tracking due to HSTS on subdomain?

所以,差不多一年前,我在我的网站上设置了 HSTS 并将其提交到 Google 的预加载列表。现在,我遇到了一个问题,因为我将我的 sendgrid link 跟踪标记为白色,它依赖于我网站子域的 cname。因此,那些 link 失败并在 Chrome 中出现 NET::ERR_CERT_COMMON_NAME_INVALID 错误,因为浏览器收到的 SSL 证书来自 SendGrid。

有办法解决吗? Chrome 的预加载列表期望我的所有子域都通过 SSL 提供服务,并且证书与我的实际域相关联。有没有办法快速让 Chrome 删除对我的子域的期望?或者有没有办法更改 SendGrid 设置,以便我消除 CNAME 记录并将我的子域重定向到 SendGrid 域?也许是别的。

顺便说一下,我的子域有自己的 SSL 证书。


如有必要,我愿意为我的 link 跟踪切换到不同的域,但是我需要一种方法来重写旧客户电子邮件中的 link。

您可以使用 Fastly 或 CloudFlare 等 CDN 对您的 SendGrid 点击跟踪链接执行 SSL 终止。他们将终止 SSL(这将满足您的 HSTS 配置)并将请求代理到 SendGrid 以进行点击跟踪/重定向。

这里有一些额外的信息: https://sendgrid.com/docs/Classroom/Build/Add_Content/content_delivery_networks.html

您基本上想要配置 Fastly / CloudFlare 来代理请求,联系 SendGrid 支持让他们验证并为您的帐户启用 "SSL click tracking"。一旦他们确认一切都按预期设置,您就可以更新子域上的 CNAME 以指向 CDN 提供商,而不是直接指向 SendGrid。

您还可以选择使用 mod_proxy 设置 Apache 以终止 SSL 并将请求直接代理到 SendGrid。