今日,Sohu邮箱上线了“全程Https”的功能


mail.sohu.com的证书早就申请下来了


其实,技术要做的主要工作是:


如何不让浏览器弹出“不安全”的警告框


由于邮箱中有很多iframe,同时还有很多广告碎片等元素


所以,大部分时间都花在了整理前端的js


同时,修改后台的代码,过滤外域src资源并提供前端所需要的URL


以下是几个要点:



  1. 对于请求mail.sohu.com之外的资源,如CDN上的图片等,使用了反向代理,并在nginx层增加Cache(如果没有Cache,nginx端外域代理并发大时,可能会返回403错误...),参见:配置nginx的cache

  2. 遍历所有的iframe,把src中直接document.write的地方修改为具体的页面,如blank.html,参见:https下的iframe

  3. 对于一些图片广告资源,使用类似//mail.sohu.com/....或/static/images/...的方式,来自适应http和https的访问,参见:web页面中自动切换http/https

  4. 一些浏览器(如:IE)会自动缓存https下的Get请求,只好在url后面加上随机数来防止缓存了