迈向HTTPS(二)迁移至HTTPS要进行的具体工作

购买证书并在 WEB 服务器配置好 HTTPS 网站后,就可以进行具体的迁移操作了。其实非常简单,假如你的应用只是 API,只要让调用方修改下调用协议就可以了;假如你的应用是网页,相对来说繁琐一点。

加载的资源必须是 HTTPS

页面可能会以各种方式加载图片、CSS、JS 这样的元素,元素也有可能是外站的,请务必加载 HTTPS 协议的资源,这个时候你的应用程序就要进行大检查了,假如网站页面不多,可以通过 Chrome 开发者工具检查是否没有修改到位,见下面的图就能知道那些元素还不是 HTTPS 的:

![https chrome 工具][https_1]
[https_1]: http://notes.newyingyong.cn/static/image/2017/https_1.png "https chrome 工具"

假如在 HTTPS 页面嵌入 HTTP 元素,称之为 Mixed Content,假如是加载的是 JS 这样重要的元素,浏览器会直接阻止的,比如在控制台显示如下的提示 Mixed Content: The page at 'https://rss.newyingyong.cn/' was loaded over HTTPS, but requested an insecure script 'http://weibonotice.newyingyong.cn/static/js/jquery.js'. This request has been blocked; the content must be served over HTTPS。而对于图片这样的 HTTP 元素,浏览器还是允许显示的。

总体上来说,开发者尽量去替换 HTTP 元素(尤其是 JS、CSS元素),有的网站是同时支持两个 HTTP 协议,所以在引入元素的时候,这样写 <script src="//rss.newyingyong.cn/static/js/jquery.js"></script>

如何让用户使用新的 HTTPS 网页

现在你在网站上全部部署了 HTTPS 网页,但是有的时候用户记住了你的 HTTP 网页,那么如何引导他进入 HTTPS 网页呢?可以有两种方式,第一就是通过 Nginx 的 Rewrite 规则,对 HTTP 协议的访问进行跳转,方法很简单:

server {
    listen 80;
    listen [::]:80;
    server_name rss.newyingyong.cn; 
    return 301 https://rss.newyingyong.cn$request_uri;
}

第一种方法是服务器端控制方法,第二种方法是客户端控制方法,服务器可以发送一个 Header 头,告诉浏览器我这个网站有 HTTPS 协议,假如用户访问的是 HTTP 网页,请帮我转换下,这个头就是 Strict-Transport-Security,在 Nginx 上可以这样进行配置。

add_header Strict-Transport-Security max-age=15768000;

域名和证书

在 HTTP 时代,不管是顶级域名还是通配符域名本身和 HTTP 没有关系,只有 DNS 和 WEB 服务器能够支持就可以了,到了 HTTPS 时代,由于多了证书这个概念(和域名有关系),所以在迁移过程中必须考虑域名的问题。

就我理解的概念,小企业一般就一个主域名(也可称为顶级域名),比如 newyingyong.cn,然后可以使用多个二级域名,比如 rss.newyingyong.cn 和 weibonotice.newyingyong.cn ,后续可能还会新增新的二级域名,这时候应该选择域名通配符证书,另外尽量不要使用三级域名,因为通配符只支持无限多个二级域名。这也告诉我们架构设计的时候,我们在部署服务的时候一定要注意域名层级的选择。

对于大企业来说,可能有多个根域名,比如 rss.newyingyong.cn,rss.newyingyong.com,那么这时候可能就要选择多域名证书了,多域名下再支持通配符,可以看下新浪的域名证书。

#使用者
CN = sina.com
OU = Sina.com Technology(China)Co.,ltd
O = Sina.com Technology(China)Co.,ltd
L = Beijing
S = Beijing
C = CN

#使用者可选名称
DNS Name=sina.com.cn
DNS Name=*.video.sina.com.cn

未来对于大企业来说,证书统一管理也很重要,假如证书私自发送给每个服务的管理员,存在极大的风险。

如何引入外站内容和 CDN

假如页面引入的外部元素不支持 HTTPS,基本没有什么好的方法,只能推动所有网站升级到 HTTPS,另外为了增加安全性,当 HTTPS 降级访问 HTTP 内容的时候,默认会阻止传递 Refer 信息的,总体来说,未来的服务会越来越安全,对于一些做通用服务的企业来说,不支持 HTTPS 基本无法生存。

另外有些企业可能会使用第三方的 CDN,但是不可能将自己的私钥发送给第三方 CDN,所以在迁移过程中也要考虑这些问题,不过大部分 CDN 厂商都支持无私钥方案,由于自己个人站没有使用 CDN,所以相关经验优先,对于企业迁移 HTTPS 的时候,这也是需要注意的一个点。

robots.txt 和搜索引擎

虽然这两个知识和 HTTPS 没有直接的关系,但是在迁移过程中也需要注意。可以参考 Google 的相关资料,比如在 Search Console 中切换 HTTPS 域名,robots.txt 增加对于 HTTPS 的控制,另外 Google 一直在推进 HTTPS ,所以在收入的时候会优先考虑 HTTPS 网页,不过对于中国网站来说,影响并不大。

而百度站长平台对于 HTTPS 的说明并不多,对开发者来说启用 HTTPS 到底有多大好处并不知道。我们能做的就是考虑全面一点。

迁移面临的挑战

其实 HTTPS 迁移技术上没有太多的问题,更多的是权衡。大家思考几个问题:

1:新浪微博为什么不支持 HTTPS

因为它是个信息聚合网站,会嵌入很多外站内容,目前的情况是很多网站还没有 HTTPS,所以目前实施 HTTPS 肯定不可行。

2:新浪这样的门户网站为什么不能很好的支持 HTTPS

大家可以访问下 https://www.sina.com.cn ,浏览器会提示不安全,新浪门户有多年的历史,有完整的 CMS 系统,外部引入也非常多,有些资源的地址都是绝对路径,存储在数据库这样的持久化系统中,全面替换是非常难搞的一个工作,所以只能慢慢消化。

这里想说的并不是应不应该迁移的问题,而是对于某些网站来说迁移挺复杂,假如网站架构设计的好,那么迁移起来就非常简单。假如有很多历史包袱,那么这个过程会很痛苦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容