2016-03-03 41 views
3

因此,差不多一年前,我在我的網站上設置了HSTS並將其提交到Google的預加載列表中。現在,我有一個問題,因爲我whitelabeled我的sendgrid鏈接跟蹤,這依賴於我的網站的子域的cname。所以,這些鏈接將失敗,並在Chrome中出現NET::ERR_CERT_COMMON_NAME_INVALID錯誤,因爲瀏覽器接收到的SSL證書來自SendGrid。修復由於子域上的HSTS而導致斷開的鏈接跟蹤?

有沒有辦法解決這個問題? Chrome的預加載列表預計我的所有子域名都將通過SSL提供,並附帶與我的實際域綁定的證書。有沒有辦法讓Chrome快速刪除我的子域名期望?或者是否有方法來更改SendGrid設置,以便消除CNAME記錄,並將我的子域重定向到SendGrid域?也許別的東西。

順便說一句,我的子域擁有自己的SSL證書。


我願意在必要時切換到不同的域我的鏈接跟蹤,但後來我需要一種方法來改寫老客戶的電子郵件中的鏈接。

回答

5

您可以使用CDN(如Fastly或CloudFlare)在SendGrid點擊跟蹤鏈接上執行SSL終止。他們將終止SSL(這將滿足您的HSTS配置)並將請求代理到SendGrid以進行點擊跟蹤/重定向。

這裏有一些額外的信息: https://sendgrid.com/docs/Classroom/Build/Add_Content/content_delivery_networks.html

你基本上要配置快速度/ CloudFlare的以代理請求,伸手SendGrid支持,讓他們驗證,並啓用「SSL點擊跟蹤」爲您的帳戶。一旦他們確認所有事情都按預期設置好了,您就可以更新子域上的CNAME,以指向CDN提供商,而不是直接指向SendGrid。

您還可以選擇使用mod_proxy設置Apache以終止SSL並將請求直接代理到SendGrid。

+0

不幸的是,CDN解決方案成本太高。所以,我必須去mod_proxy路線。感謝您的建議。如果你有任何細節可以補充,我會很感激。 – David

+1

嘿@David抱歉,在這方面給你回覆很大的延遲。 這是我工作的配置。這不是SendGrid實際記錄的內容,但如果您有任何問題,我可以嘗試幫助您。 https://gist.github.com/francisck/0acfca5f6df2c1131b4b –