HTTPD简介:
HTTPD 具有很高的稳定性,是深受企业欢迎的主要原因。它占据了市场60%的份额。采用http协议,加密的协议为HTTPS,具有mpm(多进程处理机制)满足客户端对站点访问。其中mpm分为两种:1.prefork,他是默认采用的一种方式,每当有一个用户请求访问便会产生一个进程为其服务,因此,他的稳定性很好,但是他最多同时有8个进程提供httpd服务,缺点就是占用了大量的内存。2.worker,同时最多有2个进程服务,每当有一个请求发过来,会在进程中产生一个线程为其服务,因此,他的稳定性低,优点就是不占用内存。HTTPS实际上应用了Netscape的安全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是像HTTP那样使用端口80来和TCP/IP进行通信。)
http协议的主要特点可概括为:
1. 支持C/S模式。
2. 应用层的协议中,简单快速,只需传递路径和方法。相应速度快。
3. 灵活,允许传输任意类型的数据对象。
4. 无连接协议,在服务器端处理完客户的请求并受到客户的应答后,即断开连接。从而节省了传输时间。
5. 无状态协议。并不跟踪访问过它的用户。
HTTPS与HTTP的区别:
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
SSL协议主要作用:
认证用户和服务器,确保数据安全的发送到正确的客户机和服务器。
SSL协议的握手流程图:
SSL协议的握手过程:
1.用户向服务器端发送访问请求,服务器端向用户发放证书,该证书中包含了公钥和颁发机构的名称等很多重要的信息。
2.客户端利用服务器传来的证书来检验服务器的合法性,包括证书是否过期,发行服务器证书的CA是否可靠。
3.如果证书检查通过。客户端随机产生一个对称密码,值得注意的是客户端每次访问都会随机产生一个密码。然后用服务器的公钥对这个对称密码进行加密,加密后传给服务器。
4.服务器使用自己的私钥对其解密,从而得到客户端的密码。
5.然后服务器和客户端使用相同的密码对信息进行加密。而且在此过程中ssl会保证数据的完整性。
试验拓扑图
硬件需求:
一台服务器(担任CA、WEBserver),一台pc(扮演客户端角色~)
软件需求:
httpd-2.2.3-31.el5.i386.rpm
mod_ssl-2.2.3-31.el5.i386.rpm
实验步骤:
安装httpd
[root@zhangc Server]# yum install -y httpd-2.2.3-31.el5.i386.rpm
1》做身份验证
编辑/var/www/html/.htaccess 对来访的用户进行控制
账号服务目录位置
验证类型为基本身份验证
有效用户才能访问
然后使用指令htpasswd来产生.htpasswd
[root@zhangc www]# htpasswd -c .htpasswd user1
-c 表示创建一个新文件 user1 只供user1使用
[root@zhangc www]# htpasswd -c .htpasswd user2
2》做来源控制:
查看访问记录:
在/var/log/httpd/目录中有2个日志文件access_log、error_log。其中access_log 访问成功的日志记录。error_log表示访问失败的日志记录。
3》加密访问https
我们需要搭建:CA(证书的发放机关) WEB服务器(web服务器供用户访问web)Client(测试)
分为以下几个步骤
1.CA的搭建:
CA的分发原理:
CA 证书的颁发机构,webserver向CA发出申请,然后CA将证书分发给WEBServer,然后web server与证书进行绑定,当用户发送访问请求时,web server将证书出示给用户。
进入 /etc/pki/
Vim tls/openssl.conf
Dir CA相关的文件的存放位置
已经发行过的证书的存放位置
Crl 证书吊销列表 黑名单存放位置
Database 数据库的索引文件
New-certs_dir 新证书存放的位置
Certificate 发证机关的证书存放位置 CA
Serial 序列号文件
将该文件修改为:
然后创建系统中不存在的文件夹[创建3个文件夹 2个文件Certs crl newcerts index.txt serial cakey.pem(私钥文件)]
[root@zhangc CA]# mkdir certs crl newcerts
[root@zhangc CA]# touch index.txt serial
创建私钥和证书
cakey.pem使用openssl
Openssl genrsa gen表示产生 rsa表示非对称加密算法
并将生成的文件输入到private/cakey.pem文件中
为了私钥的安全,修改private/文件夹下的文件权限
有了私钥才能产生证书
[root@zhangc ~]# cd /etc/pki/tls/
[root@zhangc tls]# vim openssl.cnf
编辑修改默认参数以及分发的匹配原则
[root@zhangc tls]# openssl req -new -key /etc/pki/CA/private/cakey.pem -x509 -out cacert.pem -days 3650【利用cakey.pem来产生证书,有效期为10年】
Web服务器(使用linux来做)
1.私钥 2.证书请求 3.申请证书
创建文件夹/etc/pki/CA/etc/httpd/certs,用于存放以上3个文件
创建私钥
[root@zhangc certs]# openssl genrsa 1024 >httpd.key
修改权限,以确保安全性
[root@zhangc certs]# chmod 600 httpd.key
产生一个请求证书
[root@zhangc certs]# openssl req -new -key httpd.key -out httpd.csr
利用csr请求 来 得到一份证书
然后将http与ssl 进行结合实现https来进行访问
安装mod_ssl
[root@zhangc Server]# yum install -y mod_ssl-2.2.3-31.el5.i386.rpm
[root@zhangc Server]# cd /etc/httpd/conf.d/
安装以后会产生ssl.conf文件
编辑ssl.conf,指明自己创建证书文件和私钥文件
重新启动服务
Service httpd restart
测试结果:
然后编辑/etc/httpd/conf.d/ssl.conf文件
打开证书链
再次重新启动httpd服务
为了安全,关闭明文端口,禁止使用http访问该站点
再次进行访问
试验完成。