基于Windows2012平台安装配置实现安全Apache Web服务器

信息科学与技术学院

2020—2021学年第一学期

题目名称:《基于Windows2012平台安装配置实现安全Apache Web服务器》
专 业: 软件工程
班 级:
学 号:
学生姓名:
指导教师:

完成日期:二○二○ 年 十二 月 十三 日

目 录

1.1 实训课题/实践任务名称:基于Windows2012平台安装配置实现安全Apache Web服务器 - 3 -
1.2 理论背景/基础知识/相关技术概述 - 3 -
1.3 实践任务环境/资源说明 - 5 -
1.4 实践任务内容 - 5 -
1.5 过程/详细步骤说明 - 6 -
1.6 实训课题/实践任务结论 - 14 -
1.7 总结与体会 - 15 -
附录A  参考文献 - 16 -

1.1 实训课题/实践任务名称:基于Windows2012平台安装配置实现安全Apache Web服务器
任务简介:ApacheApache是世界使用排名第一的wcb服务器软件。Apache取自”apatchyserver”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来
开发新功能、新的特性、修改原来的缺陷,Apache的特点是简单、速度快、性能稳定,并可做代理服务器用.本题要求能够利用OpenSSL为Apeche服务器颁发身证证书,实现Web客户端对服务器站点的单向身份认证,要求给出服务器证书及密钥创建、服务器端证书安装、C/S两端配置文件的全部配置选项的含义及配置建议。
1.2 理论背景/基础知识/相关技术概述
1.相关技术概述
Windows Server 2012是微软于2012年9月4日发布的服务器系统。
它是Windows 8的服务器版本,并且是Windows Server 2008 R2的继任者。它可向企业和服务提供商提供可伸缩、动态、支持多租户以及通过云计算得到优化的基础结构。Windows Server 2012包含了大量的更新以及新功能,通过虚拟化技术、Hyper-V、云计算、构建私有云等新特性,让 Windows Server 2012 变成一个无比强大且灵活的平台。
Apache是一款非常有名的应用软件。它是世界上使用最广泛的Web服务器应用程序,在商业Web服务器市场中占有超过50%的份额。 Apache是类Unix操作系统中使用最广泛的Web服务器应用程序,但几乎可用于所有平台,如Windows,OS X,OS / 2等. 它是一个基于流程的模块化Web服务器应用程序,它通过每个同时连接创建一个新线程。 它支持许多功能; 其中许多都被编译为单独的模块并扩展其核心功能,并且可以提供从服务器端编程语言支持到身份验证机制的所有功能。 虚拟主机就是这样一种功能,它允许单个Apache Web服务器为许多不同的网站提供服务。Apache 的进程名字是 httpd。
apache加密TCP/IP网络产品的标准是SSL ,对于Internet上普遍使用的超文本传输协议(HTTP)而言,其加密后的协议称为 HTTPS,缺省采用443端口。HTTPS数据是加密以后传输的,因此能有效保护在网络上传输的个人隐私信息。
基础知识
2.基础知识
(1)httpd.con:用于设置服务器启动的主要环境。

  1. SRVROOT
    服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录。默认为安装目录,不需更改
    2.Listen
    指定服务器监听的IP和端口。默认情况下Apache会在所有IP地址上监听。Listen是Apache2.0以后版本必须设置的指令,如果在配置文件中找不到这个指令,服务器将无法启动。
    语法:Listen [IP-address:]portnumber [protocol]
    例如:Listen 192.168.24.130:80
  2. LoadModule:
    加载特定的DSO模块。Apache默认将已编译的DSO模块存放于4.1目录结构小节中所示的动态加载模块目录中。
    语法:LoadModule module filename
    如:LoadModule rewrite_module modules/mod_rewrite.so
    如果filename使用相对路径,则路径是相对于ServerRoot所指示的相对路径。
  3. ServerAdmin:
    设置在所有返回给客户端的错误信息中包含的管理员邮件地址。
    语法:ServerAdmin email-address|URL
    如果httpd不能将提供的参数识别为URL,它就会假定它是一个email-address ,并在超连接中用在mailto:后面。推荐使用一个Email地址,因为许多CGI脚本是这样认为的。如果你确实想使用URL,一定要保证指向一个你能够控制的服务器,否则用户将无法确保一定可以和你取得联系
  4. ServerName:
    设置服务器用于辨识自己的主机名和端口号。
    语法:ServerName [scheme://]fully-qualified-domain-name[:port]
    为了加强可靠性和可预测性,建议使用ServerName显式的指定一个主机名和端口号。
    如果使用的是基于域名的虚拟主机,在段中的ServerName将是为了匹配这个虚拟主机,在"Host:"请求头中必须出现的主机名。
  5. DocumentRoot:
    设置Web文档根目录。
    语法:DocumentRoot directory-path
    在没有使用类似Alias这样的指令的情况下,服务器会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。
    如果directory-path不是绝对路径,则被假定为是相对于ServerRoot的路径。
    指定DocumentRoot时不应包括最后的"/"。

  6. 和用于封装一组指令,使之仅对某个目录及其子目录生效。
    语法: …
    Directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。在通配符字符串中,"?“匹配任何单个的字符,”*“匹配任何字符序列。也可以使用”[]“来确定字符范围。在”~" 字符之后也可以使用正则表达式。
    如果有多个(非正则表达式)配置段符合包含某文档的目录(或其父目录),那么指令将以短目录优先的规则进行应用,并包含.htaccess文件中的指令。
    正则表达式将在所有普通配置段之后予以考虑。所有的正则表达式将根据它们出现在配置文件中的顺序进行应用。
    指令不可被嵌套使用,也不能出现在或配置段中。
  7. include:
    在服务器配置文件中包含其它配置文件。
    语法:Include file-path|directory-path
    Shell风格(fnmatch())的通配符可以用于按照字母顺序一次包含多个文件。另外,如果Include指向了一个目录而不是一个文件,Apache将读入该目录及其子目录下的所有文件,并依照字母顺序将这些文件作为配置文件进行解析。但是并不推荐这么做,因为偶尔会有临时文件在这个目录中生成,从而导致httpd启动失败。文件的路径可以是一个完整的绝对路径(以一个斜杠开头),或是相对于ServerRoot目录的相对路径。
    (2)httpd-vhosts.conf:虚拟主机功能
  8. ServerName指令:
    语法:ServerName [scheme://] FQDN [:port]
    用来设置服务器用于辨识自己的主机名和端口号。主要用于创建重定向URL。
    2.DocumentRoot指令:
    语法:DocumentRoot directory-path
    用来设置httpd提供服务的目录。即你所在项目入口处的文件夹。
    3.<Directory 目录路径>…
    为主目录或虚拟目录设置权限。
    4.ErrorLog指令:
    语法: ErrorLog file-path
    来设置当服务器遇到错误时记录错误日志的文件。如果file-path不是以/开头的绝对路径,那么将会被认为是一个相对于ServerRoot的相对路径。

5.CustomLog指令:
语法: ErrorLog file-path common
设置日志文件,并指明日志文件所用的格式(通常通过格式的名字)。

1.3 实践任务环境/资源说明
本课题需要1台带有活动网络连接且安装有VMware虚拟机软件的PC机,PC机本机系统作为网络的客户端,VMware里面的虚拟机操作系统作为服务器端。
其中主机/客户端环境的配置如下表1-1所示:
表1-1 主机(/客户端)的环境配置(主机配置)

操作系统Windows 10
Web浏览器IE11
IP地址192.168.24.1

虚拟机/服务器端的环境配置如下表1-2所示:
表1-2 虚拟机(/服务器端)的环境配置(虚拟机配置)

操作系统Windows server 2012
Web浏览器器IE10
Apache版本Apache-2.4.46-o111i-x86-vc15
IP地址192.168.24.130

1.4 实践任务内容
1、动手实际安装VMware虚拟机工具;
2、安装VMware虚拟机操作系统,使主机和虚拟机可以互相ping通。
3、在虚拟机安装apache
4、关闭虚拟机Windows 防火墙。
5、配置apache,在服务端和客户端验证成功配置。
6、配置apache,监听443端口,启用ssl。
7、生成安全证书。
8、在服务端ie浏览器安装安全证书,验证安全服务。
9、在客户端ie浏览器安装安全证书,验证安全服务
1.5 过程/详细步骤说明
主要步骤:
1.开启防火墙相关设置使本机ping虚拟机成功。
在这里插入图片描述

图 1-1 主机ping虚拟机
2.在虚拟机安装apache
3.配置apache
Step1:修改httpd.conf(conf\httpd.conf)
将Define SRVROOT "/Apache24"修改为Define SRVROOT “C:\Apache\Apache24”
C:\Apache\Apache24是apache在虚拟机中的安装路径。
在这里插入图片描述

图 1-2 修改SRVROOT
Step2:修改修改httpd.conf(conf\httpd.conf)
将ServerName local host修改为ServerName 192.168.24.130
192.168.24.130是虚拟机的IP地址 443是https监听的端口也可以是其他端口
在这里插入图片描述

图 1-3 修改ServerName
Step3:修改修改httpd-vhosts.conf(conf\extra\httpd-vhosts.conf)
在这里插入图片描述

图 1-4 配置httpd-vhosts.conf
Step4:安装Apache的主服务,并启动服务
以管理员身份打开cmd窗口,跳转到bin目录下,输入
Httpd.exe -k install -n “localhost”.localhost是服务名,可以是其他。
在这里插入图片描述

图 1-5 安装apache服务
打开控制面板,进入服务,找到local host服务并启动
在这里插入图片描述

图 1-6 启动服务

4.关闭防火墙
在这里插入图片描述

图 1-7 关闭Windows防火墙
5.测试服务
在这里插入图片描述

图 1-8 测试HTTP服务
6.配置apache+OpenSSL安全证书
Step1:在 conf\httpd.conf,将下面两行的注释去掉
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
注释Include conf/extra/ httpd-ahssl.conf
Step2:在 conf\httpd.conf 将所有端口换成443
Step3:在 conf\extra\ httpd-vhosts.conf 修改端口为443
在这里插入图片描述

图 1-9 修改 httpd-vhosts.conf 端口
Step4:在 conf\extra\ httpd-ssl.conf 修改serverName 格式为 IP地址:端口号
Step5:生成安全证书
(1)以管理员身份打开cmd窗口,跳转到bin目录
(2)生成未签署的server.csr,在cmd输入
openssl req -new -out server.csr -config …/conf/openssl.cnf
在这里插入图片描述

图 1-10 生成未签署的server.csr,输入密码
我这里输入的是123456。可以随意输入,但需要记忆,接下来会用到。接下来继续输入
Country Name (2 letter code) [AU]: ISO国家代码(只支持两位字符)
State or Province Name (full name) [Some-State]: 所在省份
Locality Name (eg, city) []: 所在城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 公司名称
Organizational Unit Name (eg, section) []: 组织名称
Common Name (e.g. server FQDN or YOUR name) []:输入虚拟机IP地址
Email Address []: 管理员邮箱
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: 交换密钥 可空
An optional company name []: 可空

在这里插入图片描述

图 1-11 生成未签署的server.csr
(3)生成server.key
openssl rsa -in privkey.pem -out server.key
在这里插入图片描述

图 1-12 生成server.key
在箭头处输入上一步输入的密码
(4)签署服务器证书文件server.crt
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
在这里插入图片描述

图 1-13 生成server.crt
-days参数表示证书有效期,单位为天,x509表示生成的是X.509证书。
(5)完成之后,将目录中的server.key和server.crt拷贝到%安装目录%/conf目录中
(6)重启apache服务,输入httpd.exe -k restart -n “localhost”
在这里插入图片描述

图 1-14 重启服务
7.在服务端浏览器安装安全证书,并测试服务
打开ie浏览器:工具->Internet选项->内容->证书->受信任的根证书颁发机构->导入
将server.crt导入。
在这里插入图片描述

图 1-15 服务端浏览器安装安全证书
在这里插入图片描述

图 1-16 服务端测试https
8.在客户端浏览器安装安全证书,并测试服务
打开ie浏览器:工具->Internet选项->内容->证书->受信任的根证书颁发机构->导入
将server.crt导入。
在这里插入图片描述
在这里插入图片描述

图 1-17 客户端浏览器安装安全证书

图 1-18 服务端测试https
1.6 实训课题/实践任务结论
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件。同时Apache音译为阿帕奇,Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。不足之处是这次项目相对简单仅仅是对apche的少量配置,没有涉及数据库,以及PHP,Java,jsp开发。
Apache的优点:
(1)可以在所有计算机平台运行
(2)支持最新HTTP协议
(3)简单而强有力的基于文件的配置
(4)支持通用网关借口CGI
(5)支持虚拟机
(6)支持HTTP认证
(7)集成Perl脚本编程语言
(8)集成的代理服务器
(9)具有可定制的服务器日志
(10)支持服务器端包含命令(SSI)
(11)支持安全Socket层(SSL)
(12)用户会话过程的跟踪能力
(13)支持FastCGI
本次课设不足之处:
(1)本课程设计仅仅是对apache web服务进行的少量配置,只是满足apache web
实现较好管理的一种方式
(2)未能为apache web服务器发挥其强大的服务器功能提供较好的配置
(3)未能做到apache web与其他工具的组合,发挥其强大的功能,为网络编程提
供基础改进之处
1.7 总结与体会
在学校中我参加过软件开发社团,学习过网页开发的知识,也做过一些项目。主要是PHP开发。我们使用的软件是PHPstudy,主要用于PHP开发的服务器软件,里面封装了apache和MySQL数据库,使用相当便利。在这一学期也学习过Java web课程,在这一课程中了解了tomcat。tomcat服务器是一个免费的开放源代码的Web 应用服务器,是开发和调试JSP 程序的首选。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
在平时的学习中,我经常使用有关apache服务器的软件,但我自己并没有配置过apache服务器,尤其是平时做的更多的是代码方面的工作,就算是有配置软件工作也只是关于文件上传大小限制,文件保存路径这些方面的。这次实训我自己亲自安装配置apache服务器,尤其是利用OpenSSL为Apeche服务器颁发身证证书,实现Web客户端对服务器站点的单向身份认证。仅仅是安装配置apache服务器提供web服务相对简单。但是配置服务器使其能够通过IP地址访问,还有安全证书方面比较难。尤其关于安全证书方面,由于软件更新换代较快。很多参考教程都有一些问题,文件配置也有不同。这次实训题目对我而言十分熟悉有很陌生,在这次实训中我了解到了http和https的不同,虽然我以前做过网页项目但没有了解有关安全配置的问题,我觉得这次实训十分有趣,对于apache服务器了解更加深刻。
附录A  参考文献
[1]何旭,鲜乾坤,雷建平.基于SSL证书认证中间件的安全性分析[J].四川理工学院学报(自然科学版),2014,27(03):59-64.
[2]张国防.基于Apache的SSL研究与实现[J].计算机安全,2010(09):58-59+69.
[3]郑华,刘丽娜,李筱楠.Window环境下搭建基于OpenSSL的安全Apache服务[J].微计算机信息,2010,26(06):80-81.
[4]李国俊,苏锐丹,周利华.基于OpenSSL的Web安全访问控制设计与实现[J].微电子学与计算机,2006(z1):69-71.
[5]郑华,刘丽娜,李筱楠.Window环境下搭建基于OpenSSL的安全Apache服务[J].微计算机信息,2010,26(6):80-81. DOI:10.3969/j.issn.2095-6835.2010.06.032.

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值