修复由于子域上的HSTS而导致的链接跟踪断开的问题



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

有没有办法解决这个问题? Chrome 的预加载列表希望我的所有子域都通过 SSL 提供,并带有与我的实际域绑定的证书。 有没有办法快速让 Chrome 删除对我的子域的期望? 或者有没有办法更改 SendGrid 设置,以便我消除 CNAME 记录并将我的子域重定向到 SendGrid 域? 也许别的什么。

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


如有必要,我愿意切换到其他域进行链接跟踪,但是我需要一种方法来重写旧客户电子邮件中的链接。

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

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

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

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

最新更新