HTTPS的必要性
-
保护用户隐私、账号安全 HTTPS在客户端和服务器之间传输加密内容,即使被窃听,也极难解密;而HTTP明文传输。 对于用户登录操作,使用HTTP很难保证用户的账号安全:若明文传输,攻击者很容易窃听;若使用固定的加密算法,攻击者虽难以得到明文密码,但能够通过重放攻击假冒用户登录。
-
防止被劫持 在国内运营商劫持、挂广告异常猖獗的网络环境下,普及HTTPS非常必要。 注意,要防止被劫持,必须全站都上HTTPS,不加载任何非HTTPS的资源,否则还是可以被劫持。
HTTPS不能保证绝对的安全,但能极大地提高攻击/劫持的门槛和代价,这足矣。
证书
要部署HTTPS,需要证书。证书主要包含一对公钥和私钥,用来加密客户端和服务器之间传输的内容。 任何人都可以生成证书,但只有权威证书颁发机构(Certificate Authority,简称CA)颁发的证书才会被主流浏览器所信任。CA负责对申请者进行审核,对证书的安全性做担保。 证书按验证等级主要分为三类:
-
域名验证(Domain Validation,简称DV),颁发时只验证域名所有权,任何人(包括坏人)都可以申请。申请简单,费用较低,很适合个人网站、中小企业;
-
机构验证(Organization Validation,简称OV),需验证域名所有权,且申请机构是一个合法的实体组织;
-
扩展验证(Extended Validation,简称EV),CA需要对申请者进行更复杂的审核和认证。对于EV证书,浏览器通常会将地址栏显示为绿色,并显示证书所有者名称。因此电商、支付等领域通常使用这种证书。
由于存在审核、审计、担保等成本,申请证书通常是收费的,一些EV证书甚至高达数千美元/年。
Let's Encrypt
Let's Encrypt是一个免费、自动化、开放的证书颁发机构,由网络安全研究小组(Internet Security Research Group,简称ISRG)运作。 ISRG是一个关注网络安全的公益组织,主要赞助商包括Mozilla基金会、Akamai、思科、电子前哨基金会(Electronic Frontier Foundation,简称EFF)、Facebook、IdenTrust、互联网协会(Internet Society)等,参与者还有密歇根大学、斯坦福法学院、Linux基金会等。 Let's Encrypt致力于扫除资金、服务器配置等障碍,以使加密连接成为互联网的标配。 Let's Encrypt的关键原则是: