什么是WEB服务器

Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTPD服务器的原因。 Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。Web服务器是支持http,ftp gopher等协议的统称为web服务器  ,狭隘的可以理解为支持http协议的为web服务器

http版本:
          http有两个版本 1.0和1.1
          版本1.1比1.0多了持久连接(keepalive)功能 版本1.1可以让你一次访问 但是可以得到n多对象 不需要没请求一次对象就去请求对象

http与https :
           http不安全,利用的是明文显示  
           https安全利用的密文加密传输 主要是https在应用层与传输层之间加了一个ssl安全套接层,当客户机访问web服务器是,数据包到达传输层之前,先交给ssl安全套接层进行加密,然后再交给传输层传输,到达服务器后 先将数据包交给ssl安全套接层解密然后传输给应用层。所以数据包在传输的过程中都处于加密状态

web服务器的实现
     主要是

1 apache
2 nginx
3 lighttpd

https 实现加密的过程

1 客户机访问web服务器
2 web服务器出示自己的证书,证书包括web服务器的公钥,标识以及签名机关和签名
3 客户机利用证书上的公钥加密随即产生的k值
4 传到服务器后,服务器利用自己的私钥打开取出k值
5 利用k值解开数据包

Linux平台的web服务器可以做到三种安全控制

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

案例:

我们利用linux +apache 实现https加密访问
需求:

实现https需要ca 、web服务器以及web客户端 Ca是证书颁发机构 Linux有openca 开源的ca(开源的证书颁发机构)

 

实现过程

web服务器向ca请求颁发证书,若ca给予其颁发,则ca与服务器绑定。当web客户机访问web服务器时,web服务器出示证书

步骤
 

1 建立一个ca
2 web服务器向ca请求证书
3 http与ssl通过模块mod_ssl绑定结合
4客户机访问web服务器

 

 

一  建立一个ca(证书颁发机构)

安装httpd服务

安装https1_thumb[2]

启动httpd

[root@localhost Server]# service httpd start

[root@localhost Server]# cd /etc/pki

vim tls_thumb

编辑文件[root@localhost pki]# vim tls/openssl.cnf

 

vim tls2_thumb

3_thumb

将match改为optional::

:88,90 s/match/optional

目的是为不同地区的人发证书

 

 

 

 

5_thumb

避免自己在安装证书时填写自己的国家地区  所以将改为默认值

8_thumb

 

必须要有43-57之间的三个目录和两个文件

       必须有三个目录以及两个文件

       三个目录/certs /crl /newcerts

        两个文件 index。Txt serial

1 创建三个目录以及文件

[root@localhost CA]# touch index.txt serial

[root@localhost CA]# mkdir certs crl newcerts

创建3个目录与文件_thumb

2  [root@localhost CA]# echo "01" >serial 给予serial第一份证书的序号为01

 

 

3 产生钥匙[root@localhost CA]# openssl genrsa 1024 >private/cakey.pem

Genssl:gen是产生 rsa是非对称加密算法
1024 是加密的长度

4  改权限 将钥匙文件的权限改我600 [root@localhost CA]# chmod 600 private/*

5  通过钥匙产生证书 [root@localhost CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650

clip_p_w_picpath002_thumb

Ca创建完成

二 下边做自己的web服务器

要求自己是web服务器 1 有自己的私钥 2 利用自己的私钥向ca请求证书 3 申请证书

1做自己的私钥

创建自己的私钥位置文件,表明私钥放在什么位置

[root@localhost ~]# mkdir -pv /etc/httpd/certs

[root@localhost ~]# cd /etc/httpd/certs

[root@localhost certs]# openssl genrsa 1024 >http.key

clip_p_w_picpath003_thumb

2 产生自己请求证书的请求文件

[root@localhost certs]# openssl req -new -key http.key -out http.csr

clip_p_w_picpath004_thumb

3 利用请求去向ca请求证书

[root@localhost certs]# openssl ca -in http.csr -out http.cert

clip_p_w_picpath005_thumb

4 修改目录的权限

[root@localhost certs]# chmod 600 *

clip_p_w_picpath006_thumb

Web服务器做成

三 然后让http与ssl结合

两者之间的结合靠模块mod_ssl结合起来

1 查询mod_ssl模块是否安装

[root@localhost Server]# yum install mod_ssl

利用yum保证自己的yum脚本配置正确

2 编辑mod_ssl的配上文件

装过ssl之后 在[root@localhost Server]# cd /etc/httpd/conf.d/会有一个ssl.conf

Conf.d里边装一些httpd额外的功能模块

clip_p_w_picpath007_thumb

重新启动httpd

[root@localhost conf.d]# vim ssl.conf

clip_p_w_picpath009_thumb

重新启动httpd

四 测试

找一台机器当web客户机

clip_p_w_picpath011_thumb

clip_p_w_picpath013_thumb

利用加密的https访问

clip_p_w_picpath015_thumb

确定后显示证书

clip_p_w_picpath017_thumb

解决这两个问题

1 不信任颁发证书的机构

只需安装机构的证书就信任颁发机构(ca)

然后查看证书

clip_p_w_picpath019_thumb

将根ca显示出来 形成证书链

[root@localhost conf.d]# vim ssl.conf

clip_p_w_picpath021_thumb

然后重新启动

[root@localhost conf.d]# service httpd restart

clip_p_w_picpath023_thumbd

点击查看并安装证书

clip_p_w_picpath025_thumb

clip_p_w_picpath027_thumb

然后重新登陆访问网页

clip_p_w_picpath029_thumb

解决2 证书上提供的名字www.langzi.com与访问的192.168.88.128不符

解决方案有两种

1 dns服务器

2 修改本客户机的hosts文件

下边我们只修改本机的hosts文件来完成 dns慢慢与你分享

在我们电脑的

C:\WINDOWS\system32\drivers\etc

clip_p_w_picpath031_thumb

以记事本的方式打开并编辑

clip_p_w_picpath033_thumb

然后再重新访问web服务器

clip_p_w_picpath035_thumb

没有警告

成功解决

 

     最后提示:就是http能访问而https也能访问做不到https的加密策略

这样只需编辑 vim /etc/httpd/conf/httpd.conf

将其中的访问端口80 改为443 这样只有https能够加密访问