http站点的安全性

http站点的安全性

1.1. http简介:

HTTPHyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium[5] Internet工作小组IETFInternet Engineering Task Force[6] 合作的结果,(他们)最终发布了一系列的RFCRFC 1945[7] 定义了HTTP/1.0版本。其中最著名的就是RFC 2616[8] RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。为纪念Tim Berners-Lee提出HTTP后对互联网发展的贡献,万维网协会保留有他最原始提交的版本[9] 

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)[10] 

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

HTTP协议的主要特点可概括如下:

1、支持客户/服务器模式。支持基本认证[11] 和安全认证(见后文《安全协议》)

2、 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GETHEADPOST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4HTTP 0.91.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象。

5、无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

另一方面,在服务器不需要先前信息时它的应答就较快。

 

实现http站点的安全性主要有一下几个方面

1.身份验证     2.来源控制    3.加密访问

 

1.2. 网络拓扑:

1.3. 实验环境 

HTTP server平台: Os     centos 6.4  版本号2.6.32-431.el6.i686  

32位操作系统

                   软件包  httpd-2.2.15-29.el6.centos.i686.rpm

                       openssl-1.0.1e-15.el6.i686.rpm

                       mod_ssl-2.2.15-29.el6.centos.i686.rpm

案例一:  

httpd的默认站点实现身份验证

 

安装好httpd,编辑httpd的配置文件/etc/httpd/conf/httpd.conf

找到httpd的默认站点目录<Directory "/var/www/html"> 

AllowOverride None  改为  AllowOverride all

/var/www/html/创建 一个.htaccess 的说明文件,说明文件包含一下内容:

 autheuserfile

 authname

 authtype

required

来到/var/www目录下使用htpasswd 创建账号库.htpasswd并创建一个用户:

xiaoming  密码:123

进入/var/www/html/目录下建立一个小页面

 

重启httpd服务后打开一台客户机测试一下:

                       

   

   

可以看到需要进行验证才能够访问,输入账号:xiaoming 密码:123 后成功看到了  welcome!!!

1.3.1. 案例二:  

            httpd的默认站点进行来源控制

 

 

 

 

编辑httpd的配置文件/etc/httpd/conf/httpd.conf

找到httpd的默认站点目录<Directory "/var/www/html">   在访问控制规则

写入只允许来源为192.168.2.50的主机访问

 

 

用一个地址为192.168.2.60的主机来访问服务器

直接跳出了测试页面访问不成功

 

 

 

使用地址为192.168.2.50的主机来访问

   

 

出现了welcome!!访问成功

1.3.2. 案例三: 

加密访问

 

https加密访问示意图:

 

证书颁发机构CA 的实现    windows   安装证书服务

                     linux      openca

                                   openssl

 

我们使用openssl来实现CA的功能:

 

编辑openssl的配置文件/etc/pki/tls/openssl.cnf

更改CA policy选项,把countryNamestateOrProvinceNamelocalityName

都改为可选择(optional

根据自己的需要更改CA policy的默认选项

 

来到openssl的配置文件/etc/pki/tls/openssl.cnf 中的[ CA_default ]条目下看是否有这些默认文件如果没有创建这些文件用于建立CA的服务和产生CA自己的证书

/etc/pki/CA/目录下创建一个index.txt的索引文件用于记录CA所颁发的证书

[root@vbird CA]# touch index.txt

创建一个serial文件用于记录当前序列号并给它一个初始值01

[root@vbird CA]# touch serial

[root@vbird CA]# echo "01" >serial

使用openssl  genrsa产生一个rsa加密算法的CA自己的私钥,并输入到/private/cakey.pem

[root@vbird CA]# openssl  genrsa >private/cakey.pem

为了安全性更改cakey.pem权限

[root@vbird CA]# chmod 600 private/cakey.pem

使用cakey.pem来创建CA的公钥cacert.pem

web服务器颁发证书:

创建一个目录用于存放httpd的私钥

[root@vbird ~]# mkdir /etc/httpd/certs/private

生成httpd的私钥

更改权限

[root@vbird private]# chmod  600 httpdkey.pem

使用httpd的私钥来申请httpd的请求文件httpdcert.pem

httpd的请求文件httpdcert.pemCA申请证书  httpd.cart

[root@vbird certs]# openssl ca -in httpdcert.pem -out  httpd.cert

编辑/etc/httpd/conf.d/ssl.conf文件把httpd服务器和证书捆绑

重启httpd服务

 

 

打开一台测试机输入https://192.168.2.100

 

可以看到出现了证书选项

点击“查看证书”选择“证书路径”后安装证书,将rootca.org添加为受信任的根证书颁发机构

 

再次打开浏览器后访问成功!


本文出自 “CL's博客” 博客,转载请与作者联系!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。