或者

HTTPS建设全解析

作者:浅色记忆 浏览:199 发布时间:2017-09-08
分享 评论 0

 2014年底,百度已对部分地区开放HTTPS加密搜索服务,随后,百度实行全站化HTTPS安全加密服务,百度HTTPS安全加密已覆盖主流浏览器,旨在用户打造了一个更隐私化的互联网空间、加速了国内互联网的HTTPS化。同时也希望更多网站加入到HTTPS的队伍中来,为网络安全贡献一份力量。

  第一节:什么是HTTPS

  随着网络不断融入日常生活和工作当中,网络安全问题一直都是一个不能忽略的问题。据CNCERT监测发现,2015年网页仿冒、拒绝服务攻击等已经形成成熟地下产业链的威胁仍然呈现增长趋势,针对中国网站的仿冒页面(URL链接)191699个,较2014年增长85.7%,涉及IP地址20488个,较2014年增长199.4%。网页篡改、网站后门等攻击事件层出不穷,党政机关、科研机构、重要行业单位网站依然是黑客组织攻击特别是APT攻击的重点目标。2015年被植入后门的中国网站数量为75028个,较2014年增长86.7%,其中政府网站为3514个,较2014年增长130%。

  2014年底,百度已对部分地区开放HTTPS加密搜索服务,随后,百度实行全站化HTTPS安全加密服务,百度HTTPS安全加密已覆盖主流浏览器,旨在用户打造了一个更隐私化的互联网空间、加速了国内互联网的HTTPS化。同时也希望更多网站加入到HTTPS的队伍中来,为网络安全贡献一份力量。

  HTTPS是什么

  HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

  传统的HTTP模式,存在着大量的灰色中间环节,相关信息很容易被窃取,但HTTPS却是通过认证用户与服务器,将数据准确地发送到客户机与服务器,并采用加密方式以防数据中途被盗取,大大降低了第三方窃取信息、篡改冒充身份的风险。

  

  HTTPS安全原理解析

  HTTPS主要由有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。HTTPS与HTTP的原理区别可以观察下图:

  

  HTTP工作原理:

  ①客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP来完成的,一般TCP连接的端口号是80。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和许可内容。

  ② 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

  HTTPS的工作原理:

  ①. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;

  ②. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;

  ③. 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密(参考非对称加/解密),并将加密后的信息发送给服务器;

  ④. 客户端与服务器端根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和MAC密钥(参考DH密钥交换算法)。

  ⑤. 客户端将所有握手消息的MAC值发送给服务器;

  ⑥. 服务器将所有握手消息的MAC值发送给客户端。

  HTTPS的数据加密性:

  HTTPS中数据的保密性主要是通过加密完成的。加密算法一般分为两种,一种是非对称加密(也叫公钥加密),另外一种是对称加密(也叫密钥加密)。

  HTTPS使用非对称加解密主要有两个作用,一个是密钥协商,另外可以用来做数字签名。所谓密钥协商简单说就是根据双方各自的信息计算得出双方传输内容时对称加解密需要使用的密钥。如下图:

  

  HTTS多次握手和复杂的加密机制有效的加大了网站的安全性,加密机制与认证机制可以减少网站被劫持和假冒的风险!

  第二节:搭建HTTPS的准备工作

  搭建HTTPS网站的准备工作

  简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,所以HTTPS网站搭建中比较重要的内容都是围绕着SSL证书进行的。

  那我们应该做什么准备工作,如下图:

  

  网站选型:HTTPS会提升网站安全性,同样也拉高技术成本,所以我们建议一些涉及到用户隐私信息的网站进行HTTPS建设,公开性的内容是根据网站自身情况进行选择;

  证书申请:

  ①CSR文件制作:申请SSL证书之前,需要制作CSR文件,CSR,Certificate Signing Request,是制作SSL 证书的必要步骤。一个 CSR 文件中描述了 SSL 证书持有人的信息(如个人姓名或公司名称)、联系地址等,用于验证 SSL 证书和域名是同一个人持有,以确保网站的合法性。制作完成后向 SSL 证书提供商上传这个文件,以获得最终的 SSL 证书。

  在申请服务器证书时,不要出现某些特殊字符,否则在您提交CSR后,会出现"105"的错误代码。这个错误是由于在您生成CSR时,输入的信息中包含一些特殊字符,如:(@,#,&,!,等等,例如:您可以将"&"用"and"代替)。

  在您生成CSR时,公用名(Common Name)是必须填写的,但许多客户填写这一项时,经常填错或不符合标准。

  公用名(Common Name) 是您的主机名+域名,比如:www.willrey.com维瑞的服务器证书是颁发给某一台主机的,而不是一个域,您的公用名(Common Name)必须与您要使用服务器证书的主机的全名完全相同,因为www.domain.com与domain.com是不同的。

  要生成CSR文件,你必须为服务器创建一对密钥对。密钥对和证书是不可分开的,一旦您遗失了公钥、私钥或密码,重新生成密钥对后,和原来的证书就不匹配了。如果您申请的是全球信SSL证书,可以重新提交CSR免费重发证书;如果您申请的是闪快SSL证书,就必须重新付费申请证书。

  ②CA认证证书申请:将CSR提交给CA,CA一般有2种认证方式:

  1)域名认证:一般通过对管理员邮箱认证的方式,这种方式认证速度快,但是签发的证书中没有企业的名称; 2)企业文档认证:需要提供企业的营业执照。 也有需要同时认证以上2种方式的证书,叫EV ssl证书,这种证书可以使IE7以上的浏览器地址栏变成绿色,所以认证也最严格。

  ③证书安装:

  在收到CA的证书后,可以将证书部署上服务器,一般APACHE文件直接将KEY+CER复制到文件上,然后修改httpD.CONF文件;TOMCAT等,需要将CA签发的证书CER文件导入JKS文件后,复制上服务器,然后修改SERVER.XML;IIS需要处理挂起的请求,将CER文件导入。

  鉴于对建站成本的考虑,需要高级别ssl 证书的往往是大中型网站,如网上银行、购物网站、金融证券、政府机构等,诸如个人博客之类的小型站点完全可以先尝试免费ssl证书。

  服务器选购:

  考虑到CSR和SSL证书与服务器的环境配置及功能支持有必不可分的联系,建议在再选购服务器之前做好充分的考虑。尤其是对服务器是否支持SSL功能,是否与证书匹配等功能需要重视;

  网站开发:

  由于网站功能与开发语言各不相同,在这就不详细说明网站开发的准备工作了,HTTPS网站与HTTP网站在开发期间基本是一致的,只是使用协议不同。

  HTTPS网站搭建中的注意事项

  HTTPS网站的加密功能决定了在搭建过程中一定要注意一些问题:

  1、衡量投入与产出:无论是做一个新的HTTPS站还是从HTTP转成HTTPS的网站,都需要投入硬件、软件、人力等新的成本,所以在未评估之前建议不要做;一旦做好,轻易不要关闭HTTPS网站倒退回HTTP,这种倒退行为很容易造成不利影响;

  2、证书申请机构:在选择申请机构之前一定要考察核对该机构是否有可信资质,有些机构没有被国际机构认可(浏览器上会没有小绿锁),也有些机构在访问地狱上有所限制,还有的机构出现过公钥泄露的情况,所以请慎重选择;

  3、证书的选择:因为网站的开发语言、使用功能和服务器环境不同,证书的选择也不同,所以在选择时要考虑好需要什么证书,避免浪费成本;

  4、网站路径方式:在HTTP网站上绝对路径和相对路径并没有明显的区别,但是在HTTPS和HTTP共存的情况如果使用绝对路径容易出现协议混淆的情况,如果混淆后可能会出现链接打不开,或者蜘蛛抓取失败等现象,这个应该十分注意!

  5、服务器的访问速度:由于HTTPS多次握手的特性,网站速度是一定会受到影响的,所以在搭建网站的同时要注意网站速度的优惠,可以适当考虑使用CDN等产品。