Web服务器的搭建和站点安全的实现
2014-01-18 16:28
375 查看
环境:centos-6.4-x86_64
软件:httpd-2.2.15-26.el6.centos.x86_6
Web服务器的实现,在windows下有iis,在linux/unix有apache和nginx。我们这里先来讲解一下apache也就是httpd来实现web服务。
再来介绍一下httpd和nginx的区别。httpd稳定性高,但是并发数少。而nginx的并发数多但是稳定性比较差。httpd在运行时会产生一个父进程,然后由父进程派发子进程,占用资源比较多。nginx运行是靠线程,占用资源少。
安装httpd,然后通过rpm –ql查看httpd的目录结构。
![](http://s3.51cto.com/wyfs02/M02/11/B6/wKiom1LaOTHA-iXMAAGpxlnlKQU842.jpg)
看图中有一个/etc/logrotate.d/httpd这是日志分割,避免日志太大导致服务不能运行。
接下来看一下httpd的配置文件,配置文件放在/etc/httpd/conf/httpd.conf
![](http://s3.51cto.com/wyfs02/M01/11/B5/wKioL1LaOSnzQAazAAICoLUMQXc024.jpg)
可以看到httpd的配置文件主要分为三个部分,第一部分主要是全局环境配置,一般不需要修改,第二部分是主要是默认的参数,第三部分是虚拟主机的。
接着往下在95行看到一个是关于模式的
![](http://s3.51cto.com/wyfs02/M02/11/B5/wKioL1LaOUOitM2hAAAblvRuWIk547.jpg)
Httpd的工作模式有两种,一种是prefork,另一种是worker。这两个的区别就是perfork模式是产生进程,而worker模式是线程。
再往下看在292行看到网站的根目录是/var/www/html
![](http://s3.51cto.com/wyfs02/M01/11/B6/wKiom1LaOXijjMbQAAAt-hdu8GI429.jpg)
配置文件就先看到这里,接下来启动httpd
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOW-h2jC9AAD4IynQTh4237.jpg)
看到有一个小的错误,这个错误是指没有配置名字,默认使用127.0.0.1,这个并不影响服务器的运行,可以不用管。
接下来,我们在网站根目录下创建一个网页,可能不能访问。
![](http://s3.51cto.com/wyfs02/M02/11/B6/wKiom1LaOajQL05eAABZGf9D7NM636.jpg)
然后通过浏览器来访问,看能不能成功
![](http://s3.51cto.com/wyfs02/M01/11/B5/wKioL1LaOZSgVifDAAApHXniL2s620.jpg)
可以看到成功访问。
接着就来探讨一下站点的安全。
实现站点的安全有三种方式:
1、身份验证2、来源控制3、加密访问,也就是通过https协议来进行访问对于第一种和第二种安全主要是在网站目录安全性来实现的。实现方法在httpd的主配置文档中编写<directory 站点目录>验证方法</directory>这个比较简单这里就不详细介绍了,重点来讲解一下访问加密也是https的实现。要实现https就要用到数字证书,数字证书要有颁发机构CA,我们就在本机上安装openssl来实现CA首先安装openssl,接着编辑/etc/pki/tls/openssl.conf,主要修改一些默认值
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOdLhU8XXAAF6Do0HF3o471.jpg)
修改匹配的规则,不然将无法给网站签发证书
![](http://s3.51cto.com/wyfs02/M02/11/B5/wKioL1LaOczD7OknAADIBTU9jOk212.jpg)
就先修改这么多然后创建index.txt和serial,并且给serial一个初值
![](http://s3.51cto.com/wyfs02/M01/11/B6/wKiom1LaOgSSL1wWAACAn8bR4fs618.jpg)
CA也要自己的公钥,私钥和证书使用openssl genrsa 1024 >private/cakey.pem 产生CA私钥由于要保证私钥的安全性所以要修改权限
![](http://s3.51cto.com/wyfs02/M02/11/B6/wKiom1LaOhCxX5twAAA5veIhejk357.jpg)
使用openssl req -new -key private/cakey.pem -x509 -out cacert.pem 产生证书
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOf3hpR5_AANLDHCQM98619.jpg)
接下来就要配置网站的私钥 请求文件 和利用CA签发证书切换到/etc/httpd目录下创建一个文件夹存放文件使用命令mkdir certs,然后切换到该目录中产生私钥:openssl genrsa 1024 >httpd.key 然后修改权限为600产生请求文件:openssl req -new -key httpd.key -out httpd.crq
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOjrDiTBjAAPHY1GjQwU296.jpg)
然后签发证书:openssl ca -in httpd.crq -out httpd.cert然后根据提示输入y
![](http://s3.51cto.com/wyfs02/M01/11/B6/wKiom1LaOlviVUh1AABrQV7z1Z0533.jpg)
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOjmDWhjKAABQZ6_3ppA094.jpg)
我们在/etc/pki/CA目录下查看index.txt就可以看到一行记录
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOnziaozYAACER8k8bbA419.jpg)
接着就要捆绑证书,绑定证书需要调用mod_ssl模块,首先要安装模块。装好之后编辑/etc/httpd/conf.d/ssl.conf在文件的105行指出证书的位置,在112行指出key的位置。
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOpLiPa0TAAHVHow1dEQ755.jpg)
在121行指出颁发机构的证书所在位置
![](http://s3.51cto.com/wyfs02/M02/11/B5/wKioL1LaOpzSFztvAABqtoIR-S0259.jpg)
然后重启httpd,然后测试。访问的时候会说证书有问题,
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOr-RLuw9AADBPRRpOCI675.jpg)
这没有关系,我们先安装CA的证书。选择查看证书,证书路径
![](http://s3.51cto.com/wyfs02/M02/11/B6/wKiom1LaOvHDRGs_AAEV8_89lcU021.jpg)
然后选择rootca.net这个证书,然后查看证书
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOwCAt1_HAAEbooCEvyA147.jpg)
然后安装证书
![](http://s3.51cto.com/wyfs02/M02/11/B5/wKioL1LaOu6wB5JNAAJYk4V5qlo406.jpg)
最后我们可以在受信任的根证书颁发机构中看到,对于证书名不一致是因为我们颁发给了www.abc.com,而访问的是192.168.29.20,所以问出现不一致,在这里就不再搭建dns服务器了,直接在本地hosts文件中指明就行了,文件所在地方C:\WINDOWS\system32\drivers\etc
![](http://s3.51cto.com/wyfs02/M01/11/B6/wKiom1LaOyWC0wgVAAH-19g8FxQ935.jpg)
然后测试
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOxLAPhtyAAC57oSwn5g990.jpg)
访问www.abc.com可以访问到。
本文出自 “小宝_” 博客,请务必保留此出处http://mading.blog.51cto.com/8252187/1352806
软件:httpd-2.2.15-26.el6.centos.x86_6
Web服务器的实现,在windows下有iis,在linux/unix有apache和nginx。我们这里先来讲解一下apache也就是httpd来实现web服务。
再来介绍一下httpd和nginx的区别。httpd稳定性高,但是并发数少。而nginx的并发数多但是稳定性比较差。httpd在运行时会产生一个父进程,然后由父进程派发子进程,占用资源比较多。nginx运行是靠线程,占用资源少。
安装httpd,然后通过rpm –ql查看httpd的目录结构。
![](http://s3.51cto.com/wyfs02/M02/11/B6/wKiom1LaOTHA-iXMAAGpxlnlKQU842.jpg)
看图中有一个/etc/logrotate.d/httpd这是日志分割,避免日志太大导致服务不能运行。
接下来看一下httpd的配置文件,配置文件放在/etc/httpd/conf/httpd.conf
![](http://s3.51cto.com/wyfs02/M01/11/B5/wKioL1LaOSnzQAazAAICoLUMQXc024.jpg)
可以看到httpd的配置文件主要分为三个部分,第一部分主要是全局环境配置,一般不需要修改,第二部分是主要是默认的参数,第三部分是虚拟主机的。
接着往下在95行看到一个是关于模式的
![](http://s3.51cto.com/wyfs02/M02/11/B5/wKioL1LaOUOitM2hAAAblvRuWIk547.jpg)
Httpd的工作模式有两种,一种是prefork,另一种是worker。这两个的区别就是perfork模式是产生进程,而worker模式是线程。
再往下看在292行看到网站的根目录是/var/www/html
![](http://s3.51cto.com/wyfs02/M01/11/B6/wKiom1LaOXijjMbQAAAt-hdu8GI429.jpg)
配置文件就先看到这里,接下来启动httpd
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOW-h2jC9AAD4IynQTh4237.jpg)
看到有一个小的错误,这个错误是指没有配置名字,默认使用127.0.0.1,这个并不影响服务器的运行,可以不用管。
接下来,我们在网站根目录下创建一个网页,可能不能访问。
![](http://s3.51cto.com/wyfs02/M02/11/B6/wKiom1LaOajQL05eAABZGf9D7NM636.jpg)
然后通过浏览器来访问,看能不能成功
![](http://s3.51cto.com/wyfs02/M01/11/B5/wKioL1LaOZSgVifDAAApHXniL2s620.jpg)
可以看到成功访问。
接着就来探讨一下站点的安全。
实现站点的安全有三种方式:
1、身份验证2、来源控制3、加密访问,也就是通过https协议来进行访问对于第一种和第二种安全主要是在网站目录安全性来实现的。实现方法在httpd的主配置文档中编写<directory 站点目录>验证方法</directory>这个比较简单这里就不详细介绍了,重点来讲解一下访问加密也是https的实现。要实现https就要用到数字证书,数字证书要有颁发机构CA,我们就在本机上安装openssl来实现CA首先安装openssl,接着编辑/etc/pki/tls/openssl.conf,主要修改一些默认值
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOdLhU8XXAAF6Do0HF3o471.jpg)
修改匹配的规则,不然将无法给网站签发证书
![](http://s3.51cto.com/wyfs02/M02/11/B5/wKioL1LaOczD7OknAADIBTU9jOk212.jpg)
就先修改这么多然后创建index.txt和serial,并且给serial一个初值
![](http://s3.51cto.com/wyfs02/M01/11/B6/wKiom1LaOgSSL1wWAACAn8bR4fs618.jpg)
CA也要自己的公钥,私钥和证书使用openssl genrsa 1024 >private/cakey.pem 产生CA私钥由于要保证私钥的安全性所以要修改权限
![](http://s3.51cto.com/wyfs02/M02/11/B6/wKiom1LaOhCxX5twAAA5veIhejk357.jpg)
使用openssl req -new -key private/cakey.pem -x509 -out cacert.pem 产生证书
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOf3hpR5_AANLDHCQM98619.jpg)
接下来就要配置网站的私钥 请求文件 和利用CA签发证书切换到/etc/httpd目录下创建一个文件夹存放文件使用命令mkdir certs,然后切换到该目录中产生私钥:openssl genrsa 1024 >httpd.key 然后修改权限为600产生请求文件:openssl req -new -key httpd.key -out httpd.crq
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOjrDiTBjAAPHY1GjQwU296.jpg)
然后签发证书:openssl ca -in httpd.crq -out httpd.cert然后根据提示输入y
![](http://s3.51cto.com/wyfs02/M01/11/B6/wKiom1LaOlviVUh1AABrQV7z1Z0533.jpg)
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOjmDWhjKAABQZ6_3ppA094.jpg)
我们在/etc/pki/CA目录下查看index.txt就可以看到一行记录
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOnziaozYAACER8k8bbA419.jpg)
接着就要捆绑证书,绑定证书需要调用mod_ssl模块,首先要安装模块。装好之后编辑/etc/httpd/conf.d/ssl.conf在文件的105行指出证书的位置,在112行指出key的位置。
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOpLiPa0TAAHVHow1dEQ755.jpg)
在121行指出颁发机构的证书所在位置
![](http://s3.51cto.com/wyfs02/M02/11/B5/wKioL1LaOpzSFztvAABqtoIR-S0259.jpg)
然后重启httpd,然后测试。访问的时候会说证书有问题,
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOr-RLuw9AADBPRRpOCI675.jpg)
这没有关系,我们先安装CA的证书。选择查看证书,证书路径
![](http://s3.51cto.com/wyfs02/M02/11/B6/wKiom1LaOvHDRGs_AAEV8_89lcU021.jpg)
然后选择rootca.net这个证书,然后查看证书
![](http://s3.51cto.com/wyfs02/M00/11/B6/wKiom1LaOwCAt1_HAAEbooCEvyA147.jpg)
然后安装证书
![](http://s3.51cto.com/wyfs02/M02/11/B5/wKioL1LaOu6wB5JNAAJYk4V5qlo406.jpg)
最后我们可以在受信任的根证书颁发机构中看到,对于证书名不一致是因为我们颁发给了www.abc.com,而访问的是192.168.29.20,所以问出现不一致,在这里就不再搭建dns服务器了,直接在本地hosts文件中指明就行了,文件所在地方C:\WINDOWS\system32\drivers\etc
![](http://s3.51cto.com/wyfs02/M01/11/B6/wKiom1LaOyWC0wgVAAH-19g8FxQ935.jpg)
然后测试
![](http://s3.51cto.com/wyfs02/M00/11/B5/wKioL1LaOxLAPhtyAAC57oSwn5g990.jpg)
访问www.abc.com可以访问到。
本文出自 “小宝_” 博客,请务必保留此出处http://mading.blog.51cto.com/8252187/1352806
相关文章推荐
- Windows平台下结合 tortoiseSVN 和 VisualSVN Server 搭建SVN服务器并实现 web 站点同步
- Nginx学习-2 使用Nginx搭建HTML web服务器 实现SSL证书安全访问
- web服务器的搭建以及站点安全
- 完整使用SSM框架(Spring SpringMVC Mybatis)搭建web服务器实现登录功能
- 如何在一台服务器上实现多个Web站点
- Centos上搭建SVN服务器并实现自动同步至web目录
- Win7下搭建web服务器实现数据共享的简单步骤
- 如何在一台服务器上实现多个Web站点
- 搭建web服务器的SElinux策略保护 SElinux修改默认端口 安全web服务
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(二) 之 ChatServer搭建,连接服务器,以及注意事项。
- 搭建服务器上的GIT并实现自动同步到站点目录(www)
- 利用Python 1分钟搭建测试Web服务器,可实现linux目录文件共享
- 使用SSM框架搭建Web服务器实现登录功能(Spring+SpringMVC+Mybatis)
- 【Web后端笔记】基于Socket实现的简单Web服务器搭建
- 使用SSM框架搭建Web服务器实现登录功能(Spring+SpringMVC+Mybatis)
- linux实现ftp服务器的安全搭建
- 如何在一台服务器上实现多个Web站点
- win7下利用iis搭建web服务器实现信息浏览资源共享
- 【nodejs之我的开源module】 使用express搭建web服务器,代码即文档的实现。