全站HTTPS升级系列(一)升级前的科普工作
一、为什么要进行全站HTTPS升级?
安全性
相对于HTTP协议的明文传输,HTTPS的传输是加密的,可防止数据在传输过程中被黑客恶意篡改和窃取,有效防止了中间人攻击(本产品11月份就被黑客进行了一次中间人攻击,网站页面被插入了一些非法内容,导致当日访问速度如同龟爬。也由此下定了全站HTTPS升级改造的决心)
更高的SEO收录排名
HTTPS可以对接入HTTPS协议的网站获取更高的收录排名
防止错误警告提示
新版的 Chrome 浏览器如果发现当前网站不支持HTTPS协议,会在右上角提示『不安全』三个字,提示『请勿在该网站输入任何敏感信息』,对用户的信赖感造成一定负面影响
二、HTTPS和HTTP的有什么关系?
- HTTPS是由SSL+HTTP协议构建。https在http通信协议的基础上,基于ssl,增加了一个加密层
- 想要接入HTTPS,必须申请创建一SSL证书,存放在服务器上。SSL 证书是由受信任的数字证书颁发机构 CA颁发。注意,SSL证书是有有效期的,一般为三个月到一年
- HTTP协议默认走
80
端口,HTTPS协议默认走443
端口(记住这一点很重要!)
三、为什么要选取泛域名证书,而不是其他类型的的证书?
SSL 证书分为单域名证书
、多域名证书
和泛域名证书
:
单域名证书:
一个单域名证书只能保护它自己。例如一个msh.com
的证书,只能保护它自己,保护不了它下面的子域名,例如b.msh.com
,c.msh.com
是保护不了的。 缺点: 如上所示,意味着我每增加一个子域名,就需要重新生成一次该子域名对应的的SSL证书
多域名证书:
一个证书可以保护指定的多个域名。例如一个多域名证书既可以保护指定的msh.com
,也能保护指定的b.msh.com
和c.msh.com
,或者同级的nsh.com
缺点: 虽然可以指定多域名,但问题在于我也不知道将来我会增加什么子域名。这意味着我到时我可能还需要重新生成一次。个人感觉,多域名证书有点鸡肋。
泛域名证书:
一个对应为*.msh.com
的泛域名证书,可以保护msh.com
域名以及它下面所有的次一级的子域名例如b.msh.com
和c.msh.com
优势:如上所示,也意味着我可以一劳永逸,泛域名证书生成后,可以适用于该域名证书下的所有次一级的子域名。所以说是泛域名证书是三种类型证书中最实用的证书。
注意: 该证书是保护不了更下一级的abc.test.msh.com
域名的,如果你想要保护abc.test.msh.com
,需要申请一个*.test.msh.com
的泛域名证书)
四、选择付费型证书还是免费型证书?
SSL证书分为付费型
和免费型
证书。
付费型:
通过赛门铁克
或GeoTrust
颁发,安全级别更高。此外,用他们的证书出安全事故的话,机构会提供几十万乃至上千万的美金赔付。当然了,代价是证书比较昂贵,一个单域名证书一年5000 RMB,一个泛域名证书一年40000 RMB,抵得上一年服务器租赁的成本了。
免费型:
由Let's Encrypt
等数字证书机构颁发,永久免费。免费的同时,又有着极高的浏览器兼容性和安全性。更重要的是,2018年1月份开始,Let's Encrypt开始正式泛域名证书了。
结论:从适用范围来说,显然选择泛域名证书是最优解。而对于严格控制成本(qiong bi)的中小型互联网公司,基于Let's Encrypt生成自己的泛域名证书,是最最优解。
五、为什么要通过 acme.sh 生成泛域名证书,而不是其它方式?
通过Letsencrypt生成证书方式有三种:
FreeSSL.org
可以访问FreeSSL.org的官网在线生成,缺点是那就是同一主域名下的证书数量是有限制的,一般是20个,数量远不能满足正常使用,而且到有效期需要手动更换证书。因此太过鸡肋
Certbot
可以安装后再服务器上生成证书, 但是自动化程度远远比不上 acme.sh
acme.sh
他的优势简单两句话就可以说明白
- 安装很简单,一条命令搞定
- 自动化程度很高,支持自动dns校验,自动更新证书
下一篇就介绍基于 acme.sh从Letsencrypt生成免费的泛域名证书
系列文章
全站HTTPS升级系列(二)基于 acme.sh从Letsencrypt生成免费的泛域名证书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
https://juejin.im/post/5c385c0a6fb9a049ac7960be