SSL证书概述
SSL 证书(SSL Certificates)又称数字证书,是由腾讯云与业界知名的数字证书授权机构合作(CA,Certificate Authority),并在腾讯云平台为您提供免费与付费 SSL证书的申请、管理、云部署等一站式管理服务。SSL证书将为您的网站、移动 App、Web API 等应用提供身份验证和数据加密传输等整套 HTTPS 解决方案。
HTTPS 原理介绍
用一张图表示一下HTTPS的工作原理,来自http://blog.csdn.net/sean_cd/article/details/6966130,这位网友将基本的HTTPS工作原理已经总结得挺好了,我在此文的基础上再做一些补充:
其工作过程大致是:
1、客户端发起HTTPS请求
浏览器里面输入一个HTTPS网址,然后连接到服务端的443端口上。注意这个过程中客户端会发送一个密文族给服务端,密文族是浏览器所支持的加密算法的清单。
2、服务端配置
采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。
这套证书其实就是一对公钥和私钥,可以这么理解,公钥就是一把锁头,私钥就是这把锁的钥匙,锁头可以给别人对某个东西进行加锁,但是加锁完毕之后,只有持有这把锁的钥匙才可以解锁看到加锁的内容。
前面说过客户端会传送密文族给服务端,服务端则会从这些密文族中,挑选出一个,比如百度吧:
采用的就是RSA公钥加密算法来区分证书签名和交换密钥,通过AES算法来加密数据,至于GCM,应该是用来校验信息的
3、传送证书
这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构、过期时间等等。
4、客户端解析证书
这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,如颁发机构、过期时间等等,如果发现异常则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密。
注意一下上面提到的”发现异常”。证书中会包含数字签名,该数字签名是加密过的,是用颁发机构的私钥对本证书的公钥、名称及其他信息做hash散列加密而生成的。客户端浏览器会首先找到该证书的根证书颁发机构,如果有,则用该根证书的公钥解密服务器下发的证书,如果不能正常解密,则就是”发现异常”,说明该证书是伪造的。
5、传送加密信息
这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,然后客户端和服务端的通信就可以通过这个随机值来进行加密和解密了。
6、服务端解密信息
服务端用私钥解密后,得到了客户端传过来的随机值,至此一个非对称加密的过程结束,看到TLS利用非对称加密实现了身份认证和密钥协商。然后把内容通过该值进行对称加密。
7、传输加密后的信息
这部分是服务端用随机值加密后的信息,可以在客户端被还原。
8、客户端解密信息
客户端用之前生成的随机值解密服务端传送过来的信息,于是获取了解密后的内容,至此一个对称加密的过程结束,看到对称加密是用于对服务器待传送给客户端的数据进行加密用的。整个过程即使第三方监听了数据,也束手无策。
证书的一些细节
下面对上述过程中的一些细节做解释,首先是第二点中提到了证书,证书其实就是服务器自己的一套身份信息,客户端拿到证书之后会首先验证证书的合法性,如颁发证书的机构是否合法、证书中包含的网站地址是否与正在访问的地址一致等,如果证书受信任,则浏览器栏里面会显示一个小锁头,否则则会给出证书不受信的提示。以百度为例,一个受信的证书应该在浏览器上是这样的
关于证书,还是以百度、天猫为例,看一下它们的证书:
看到百度的证书使用的是VeriSign颁发的证书,颁发给baidu.com,并标明了有效期。VeriSign是一个提供智能信息基础设施服务的上市公司,数字证书业务则是其起家的核心业务。再看天猫的证书:
天猫使用的证书则是GlobalSign颁发的,颁发给*.tmall.com。GlobalSign同样是一家声誉卓著、备受信赖的CA中心和SSL数字证书提供商。再看一下百度的证书的具体信息:
从证书信息中看到了加密算法和具体的公钥。
如何由HTTP变为HTTPS
我们在浏览器中输入http://www.baidu.com/会自动跳转至https://www.baidu.com/,看下是怎么做到的,截三张图就明白了:
看到302就很明显了,response里面的Location表示后一个要请求的页面,因此百度使用的方法是对http://www.baidu.com/这个地址做了一次的重定向,这应该是最简单、最容易想到的方法,实现也方便,做一个过滤器就好了。更多阅读:如何激活免费SSL证书
不过用同样的方法看一下天猫网站,似乎不是这样做的:
并没有发起重定向,我猜想可能是利用了负载均衡将请求http变为了https。
SSL证书与 HTTPS关系
基于 SSL 证书,可将站点由 HTTP(Hypertext Transfer Protocol)切换到 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),即基于安全套接字层(SSL)进行安全数据传输的加密版 HTTP 协议。
如通过腾讯云购买 SSL 证书后,您可以在腾讯云证书管理控制台向数字证书授权机构(CA)提交证书申请,等待 SSL 证书成功颁发;SSL证书颁发后您可以将 SSL 证书进行下载并安装部署到您服务器的 Web 服务或一键部署至腾讯云的云资源中,则您的 Web 服务或云资源可以通过 HTTPS 加密协议来传输数据。
HTTPS 优势
优势 | 说明 |
---|---|
防劫持、防篡改、防监听 | 使用 SSL 证书实现网站、移动 App、Web API 等应用的 HTTPS 协议化后,HTTPS 将对用户与服务端间的数据交互进行加密,从而实现传输数据的防劫持、防篡改、防监听。 |
提升网站搜索排名(SEO) | 使用 SSL 证书实现网站的 HTTPS 协议化后,更利于搜索引擎对其信任,使网站在收录速度上更快,搜索结果中的排名更高,提升网站可信度。 |
提升网站的访问流量(PV) | 使用 SSL 证书实现网站的 HTTPS 协议化后,可以强化网站在用户侧的身份可信程度,使网站用户能更安心地访问网站,提升网站的访问流量。 |
杜绝钓鱼网站 | HTTPS 地址栏绿色图标可以帮助用户识别出钓鱼网站,保障用户和企业的利益不受损害,增强用户信任。 |
支持选购的证书类型与品牌
腾讯云支持以下两种加密标准证书:
加密标准 | 证书类型 | 证书品牌 |
---|---|---|
国际证书 | DV、OV、EV、OV Pro、EV Pro | SecureSite、GeoTrust、TrustAsia、GlobalSign、Wotrus |
国密证书 | DV、OV、EV | DNSPod |
证书类型说明
以下表格为您介绍三种证书类型的信任等级以及适用场景:
证书类型 | 信任等级 | 适用场景 |
---|---|---|
域名型(DV)SSL 证书 | 信任等级一般 | 一般用于普通网站,只需验证网站的真实性便可颁发证书保护网站。 |
企业型(OV)SSL 证书 | 信任等级强 | 一般用于企业网站,须要验证企业的身份,审核严格,安全性更高。 |
增强型(EV)SSL 证书 | 信任等级最高 | 一般用于银行证券等金融机构,审核严格,安全性最高,同时可以激活绿色网址栏。 |