http2.4版本基本配置应用

练习题:分别使用httpd-2.2和httpd-2.4实现;
1、建立httpd服务,要求:
(1) 提供两个基于名称的虚拟主机:
www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;
www2.stuX.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2/error_log,访问日志为/var/log/httpd/www2/access_log;
(2) 通过www1.stuX.com/server-status输出其状态信息,且要求只允许提供账号的用户访问;
(3) www1不允许192.168.1.0/24网络中的主机访问;
2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
(1) 要求使用证书认证,证书中要求使用国家(CN),州(Beijing),城市(Beijing),组织为(MageEdu);
(2) 设置部门为Ops, 主机名为www2.stuX.com;
首先,分析题目,我们要提供一台机器上实现两个https那就必须基于两个ip来实现,也就是说,要有两个网卡,同时,我们做实验,那就得提供一个CA。
前提准备:
centos7:http服务(ip:172.16.253.111/16,172.16.200.200/16)
centos6:CA证书机构(172.16.252.194/16 )
1、我们首先搭建一个私有CA,然把给httpd服务签一个证书,然后把CA的证书给导入到要访问httpd服务器的客户端上。
(1)创建所需要的文件/CA 目录下
touch index.txt
touch serial
echo 01 > serial
(2)CA自签证书:
(3)、为自己创建密钥:
(umask 077; openssl genrsa -out private/cakey.pem 2048)
2、openssl req -new -x509 -key /etc/pki/CA/priviate/cakey.pem -days 3600 -out /etc/pki/CA/cacert.pem
(4)发证
用到证书http服务的主机生成证书请求:
(umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
scp /etc/httpd/ssl/httpd.csr root@172.16.252.194:/tmp //传输证书请求
把请求文件传输给CA
CA签署证书,并将证书发还给请求者:
openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
查看证书中的信息:
openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -text|-subject|-serial
3、接下来就搭建httpd服务:
yum install httpd mod_ssl //httpd的ssl是以模块的方式提供的
mkdir /web/vhosts/www{1,2} -pv //创建文件目录
htpasswd -b -c /etc/httpd/ssl/.htpasswd x y //给x用户y密码,-b 没有这文件自动创建
http2.4版本基本配置应用
#NameVirtualhost *:80 //2.2版本的httpd上添加此项内容,2.4的版本就不用添加此项,服务会自动识别
<VirtualHost 172.16.200.200:80> //这里是基于IP地址来做的虚拟主机
ServerName www1.stu19.com //服务器的名称
DocumentRoot “/web/vhosts/www1” //此虚拟机的物理地址
<Directory “/web/vhosts/www1”> //在2.4的版本中,是要显示的给目录施加权限,要不然是拒绝访问
Options None //目录访问权限的指令
Allowoverride None //本目录的权限设置不允许被目录下的.htaccess配置文件的内容覆盖
<RequireAll> //在2.4的版本中需要这写来指定给予哪些用户访问的权限
require all granted //给予所有人权限
# require not ip 172.16.251.150 //不允许这个ip地址的访问
</RequireAll> //标签结尾符
</Directory> //目录标签结尾符
<Location /server-status> //允许mod_status模块产生状态报告
SetHandler server-status //打开内键处理器
Allowoverride None
AuthType Basic //添加认证方式,以basic的方式来进行用户权限控制
AuthName “Pleas input the user & passwd,OK?” //提示信息
AuthUserFile “/etc/httpd/ssl/.htpasswd” //用户帐号和密码存放的文件位置
require valid-user //允许文件中的所有用户访问
</Location> //标签结尾
CustomLog logs/www1/access_log common //定义正常访问日志的格式和位置,logs是相对位置
ErrorLog logs/www1/error_log //错误日志位置
</VirtualHost> //标签结尾
修改/etc/httpd/conf.d/ssl.conf文件,将:
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
SSLCertificateFile /etc/httpd/ssl/httpd.crt
这两个选项一定要改成你的证书和密钥的位置,这样才能以https的方式来访问。
还剩一个操作,我就不做了。同理,只需要在多复制一个ssl.conf文件出来对应www2.stu19.com,并且在去签一个www2.stu19.com的证书,并对应虚拟主机的配置就可以的。(中间遇到一个坑,最新的chrome5.8是不支持SSLv3的,所以,用老的浏览器,或者别的浏览器去做https)

原创文章,作者:dance_man,如若转载,请注明出处:http://www.178linux.com/77549

(1)
dance_mandance_man
上一篇 2017-06-05 16:44
下一篇 2017-06-05 20:32

相关推荐

  • 推荐-Openssl加密解密及PKI,创建私有CA!

    Openssl加密解密及PKI,创建私有CA Openssl加密解密及PKI,创建私有CA Openssl加密解密及PKI,创建私有CA 一、什么是SSL? 二、SSL协议出现的目的? 三、密码算法 四、SSL握手通信 五、IKE是啥? 六、PKI是啥? 七、Openssl开源项目 八、创建私有CA 九、吊销证书 附:Openssh基于密钥认证 一、什么是S…

    Linux干货 2016-04-05
  • 文件的权限管理

    提问:可执行文件的标准格式是什么?     Linux下面,目标文件、共享对象文件、可执行文件都是使用ELF文件格式来存储的。程序经过编译之后会输出目标文件,然后经过链接可以产生可执行文件或者共享对象文件。Linux下面使用的ELF文件和Windows操作系统使用的PE文件都是从Unix系统的COFF文件格式演化来的。…

    Linux干货 2016-11-23
  • Linux系统终端类型

    引言 终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。在早期计算机系统中,由于计算机主机昂贵,因此一个主机一般会配置多个终端,这些终端本身不具备计算能力,仅仅承担信息输入输出的工作,运算和处理均由主机来完成,在个人计算机时代,个人计算机可以运行称为终端仿真器的程序来模仿一个终端的工作。 &…

    Linux干货 2016-10-19
  • man命令的用法

    man 命令的用法    在linux运维工作中,经常会有一些命令我们不是很清楚它们的准确用法,这时候我们就需要去查询这些命令的用法,linux中就有很多文档帮助我们去了解这些命令的用法,其中就有一条命令man,下面我就总结一下它的用法。     man 是 manual 的简写,提供命令的帮助文件。   &…

    Linux干货 2017-02-17
  • 运维学习笔记-看看别人家的Puppet代码

    这篇博客的目的是通过分析Forge上的Puppet模块来加深一些概念的理解,同时了解一些常用用法。 今天的例子是jfryman-nginx模块,它是原puppetlabs-nginx模块的升级版本,依赖3个Puppet公共模块:puppetlabs-apt,puppetlabs-stdlib和puppetlabs-concat。安装非常方便,puppet m…

    Linux干货 2016-06-23
  • CentOS7常用网络管理命令总结

    一、CentOS7网络接口命名策略(systemd)二、CentOS7的基础网络管理命令2.1 NetworkManager服务2.2 nmtui文本交互式工具2.3 nmcli命令行接口工具nmcli的语法说明NetworkManager整体状态显示显示所有连接或仅活动的连接显示所有设备的状态显示指定设备的所有连接属性添加动态的以太网连接(DHCP)添加静…

    Linux干货 2016-06-09