Web服务器的搭建和站点安全的实现

环境:centos-6.4-x86_64
html

软件:httpd-2.2.15-26.el6.centos.x86_6linux

Web服务器的实现,在windows下有iis,在linux/unix有apache和nginx。咱们这里先来说解一下apache也就是httpd来实现web服务。nginx

再来介绍一下httpd和nginx的区别。httpd稳定性高,可是并发数少。而nginx的并发数多可是稳定性比较差。httpd在运行时会产生一个父进程,而后由父进程派发子进程,占用资源比较多。nginx运行是靠线程,占用资源少。web

安装httpd,而后经过rpm –ql查看httpd的目录结构。apache

wKiom1LaOTHA-iXMAAGpxlnlKQU842.jpg

看图中有一个/etc/logrotate.d/httpd这是日志分割,避免日志太大致使服务不能运行。windows

接下来看一下httpd的配置文件,配置文件放在/etc/httpd/conf/httpd.confcentos

wKioL1LaOSnzQAazAAICoLUMQXc024.jpg

能够看到httpd的配置文件主要分为三个部分,第一部分主要是全局环境配置,通常不须要修改,第二部分是主要是默认的参数,第三部分是虚拟主机的。浏览器

接着往下在95行看到一个是关于模式的安全

wKioL1LaOUOitM2hAAAblvRuWIk547.jpg

Httpd的工做模式有两种,一种是prefork,另外一种是worker。这两个的区别就是perfork模式是产生进程,而worker模式是线程。服务器

再往下看在292行看到网站的根目录是/var/www/html

wKiom1LaOXijjMbQAAAt-hdu8GI429.jpg

配置文件就先看到这里,接下来启动httpd

wKioL1LaOW-h2jC9AAD4IynQTh4237.jpg

看到有一个小的错误,这个错误是指没有配置名字,默认使用127.0.0.1,这个并不影响服务器的运行,能够不用管。

接下来,咱们在网站根目录下建立一个网页,可能不能访问。

wKiom1LaOajQL05eAABZGf9D7NM636.jpg

而后经过浏览器来访问,看能不能成功

wKioL1LaOZSgVifDAAApHXniL2s620.jpg

能够看到成功访问。

接着就来探讨一下站点的安全。

实现站点的安全有三种方式:

一、身份验证

二、来源控制

三、加密访问,也就是经过https协议来进行访问

对于第一种和第二种安全主要是在网站目录安全性来实现的。

实现方法在httpd的主配置文档中编写

<directory 站点目录>

验证方法

</directory>

这个比较简单这里就不详细介绍了,重点来说解一下访问加密也是https的实现。

要实现https就要用到数字证书,数字证书要有颁发机构CA,咱们就在本机上安装openssl来实现CA

首先安装openssl,接着编辑/etc/pki/tls/openssl.conf,主要修改一些默认值

wKiom1LaOdLhU8XXAAF6Do0HF3o471.jpg

修改匹配的规则,否则将没法给网站签发证书

wKioL1LaOczD7OknAADIBTU9jOk212.jpg

就先修改这么多

而后建立index.txt和serial,而且给serial一个初值

wKiom1LaOgSSL1wWAACAn8bR4fs618.jpg

CA也要本身的公钥,私钥和证书

使用openssl  genrsa  1024   >private/cakey.pem 产生CA私钥

因为要保证私钥的安全性因此要修改权限

wKiom1LaOhCxX5twAAA5veIhejk357.jpg

使用openssl req -new -key private/cakey.pem -x509 -out  cacert.pem 产生证书

wKioL1LaOf3hpR5_AANLDHCQM98619.jpg

接下来就要配置网站的私钥 请求文件 和利用CA签发证书

切换到/etc/httpd目录下建立一个文件夹存放文件使用命令mkdir certs,而后切换到该目录中

产生私钥:openssl genrsa   1024 >httpd.key 而后修改权限为600

产生请求文件:openssl req -new  -key  httpd.key -out  httpd.crq

wKiom1LaOjrDiTBjAAPHY1GjQwU296.jpg

而后签发证书:

openssl   ca  -in httpd.crq -out httpd.cert

而后根据提示输入y

      wKiom1LaOlviVUh1AABrQV7z1Z0533.jpg

     wKioL1LaOjmDWhjKAABQZ6_3ppA094.jpg

咱们在/etc/pki/CA目录下查看index.txt就能够看到一行记录

wKiom1LaOnziaozYAACER8k8bbA419.jpg

接着就要捆绑证书,绑定证书须要调用mod_ssl模块,首先要安装模块。装好以后编辑/etc/httpd/conf.d/ssl.conf

在文件的105行指出证书的位置,在112行指出key的位置。

wKiom1LaOpLiPa0TAAHVHow1dEQ755.jpg

在121行指出颁发机构的证书所在位置

wKioL1LaOpzSFztvAABqtoIR-S0259.jpg

而后重启httpd,而后测试。

访问的时候会说证书有问题,

wKioL1LaOr-RLuw9AADBPRRpOCI675.jpg

这没有关系,咱们先安装CA的证书。选择查看证书,证书路径

wKiom1LaOvHDRGs_AAEV8_89lcU021.jpg

而后选择rootca.net这个证书,而后查看证书

wKiom1LaOwCAt1_HAAEbooCEvyA147.jpg

而后安装证书

wKioL1LaOu6wB5JNAAJYk4V5qlo406.jpg

最后咱们能够在受信任的根证书颁发机构中看到,对于证书名不一致是由于咱们颁发给了www.abc.com,而访问的是192.168.29.20,因此问出现不一致,在这里就再也不搭建dns服务器了,直接在本地hosts文件中指明就好了,文件所在地方C:\WINDOWS\system32\drivers\etc

wKiom1LaOyWC0wgVAAH-19g8FxQ935.jpg

而后测试

wKioL1LaOxLAPhtyAAC57oSwn5g990.jpg

访问www.abc.com能够访问到。

相关文章
相关标签/搜索