使用httpd建立2个虚拟主机并配置访问质询与https配置


分别使用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;     实验环境 CentOS  6  1台 CentOS 7    1台 IP地址: 192.168.60.132  Centos6主机,用于安装httpd-2.2 192.168.60.138 Centos7主机,用于安装httpd-2.4 关闭Selinux 关闭防火墙 要架设一个本地httpd服务器一般需要下面2个软件程序包: 对于httpd-2.2 httpd-2.2.15-69.el6.centos.x86_64,httpd服务主程序 httpd-tools-2.2.x86_64,测试http服务的工具程序,如ab 对于httpd-2.4 httpd-2.4.6-88.el7.centos.x86_64,httpd服务主程序 httpd-tools-2.4.x86_64,测试http服务的工具程序,如ab httpd-2.2的搭载方法 在132主机上面操作 安装httpd程序包 yum install -y httpd yum install -y httpd-tools   运行服务 service httpd start 测试服务能否正常运行   创建放置网页文件的文件夹 [root@132 ~]# mkdir -pv /web/vhosts/{www1,www2} mkdir: created directory `/web' mkdir: created directory `/web/vhosts' mkdir: created directory `/web/vhosts/www1' mkdir: created directory `/web/vhosts/www2'     创建主页文件 [root@132 ~]# vim /web/vhosts/www1/index.html [root@132 ~]# vim /web/vhosts/www2/index.html       创建放置日志的文件夹 [root@132 ~]# mkdir -pv /var/log/httpd/{www1,www2} mkdir: created directory `/var/log/httpd/www1' mkdir: created directory `/var/log/httpd/www2'     基于不同的主机名称来配置虚拟主机 编辑主配置文件 vim /etc/httpd/conf/httpd.conf 禁用DocumentRoot选项 开启NameVirtualHost选项,使用默认80端口。 编辑虚拟主机的配置文件 vim /etc/httpd/conf.d/host1.conf #第一个虚拟主机的配置项目         ServerName www1.stuX.com     #主机名称         DocumentRoot "/web/vhosts/www1"        #网页文件的根目录                         #文件目录的权限设置                 Options None                 AllowOverride None                 Order allow,deny                 Allow from all            #允许所有人访问          vim /etc/httpd/conf.d/host2.conf #第二个虚拟主机的配置选项         ServerName www2.stuX.com         DocumentRoot "/web/vhosts/www2"                          Options None                 AllowOverride None                 Order allow,deny                 Allow from all          重启服务 测试访问 修改测试主机的hosts文件 192.168.60.132 www1.stuX.comwww2.stuX.com   浏览器进行访问   配置错误日志以及访问日志   修改www1主机的配置文件           ServerName www1.stuX.com         DocumentRoot "/web/vhosts/www1"                          Options None                 AllowOverride None                 Order allow,deny                 Allow from all                  #访问日志的配置项         CustomLog "logs/www1/access_log" combined         #错误日志的配置项         ErrorLog "logs/www1/error_log"         #错误日志的级别         LogLevel info   修改www2主机的配置文件 重启服务 测试www1的访问日志功能正常 测试www2的访问日志功能正常   server-status状态页面的设置 检查status模块是否以及装载进来 确保主配置文件下,该模组被装载。 /etc/httpd/conf/httpd.conf 编辑虚拟主机1的配置文件 vim /etc/httpd/conf.d/host1.conf 访问页面http://www1.stux.com/server-status   server-status状态页面的访问质询设置   使用htpasswd工具创建访问用户数据库 创建用户tom htpasswd -c /tmp/test.users tom 添加用户jack htpasswd /tmp/test.users jack 移动此文件到/etc/httpd/conf.d目录下 mv /tmp/test.users /etc/httpd/conf.d/.htpasswd   编辑配置文件 vim /etc/httpd/conf.d/host1.conf 保存并重启服务。 认证质询功能开启。   为虚拟主机设置黑名单 vim /etc/httpd/conf.d/host1.conf 重启服务 用60.1的主机测试不能访问。   用其他主机测试可访问。     为www1.stux.com配置https   CA认证模型 实验环境 CentOS  6  1台 CentOS 7    2台 IP地址: 192.168.60.132  Centos6主机,安装httpd-2.2,作为网站服务器 192.168.60.137 Centos7主机,用于作为CA证书服务器 192.168.60.1 Win10主机,用做访问客户机。 关闭Selinux 关闭防火墙   在CA证书服务器上配置CA环境 在137主机上操作 cd /etc/pki/CA/ (umask 077;openssl genrsa -out private/cakey.pem 2048) 生成自签证书 openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365 在httpd主机上安装ssl模块 132主机操作 安装mod_ssl模块 yum install -y mod_ssl 创建ssl目录,用于放置私钥文件。 mkdir /etc/httpd/ssl cd /etc/httpd/ssl 创建私钥文件 (umask 077;openssl genrsa -out httpd_key.pem 1024) 生成签署请求文件 openssl req -new -key httpd_key.pem -out httpd_csr.pem     把上面的签署文件发送到CA服务器137主机上。 scp httpd_crt.pem root@192.168.60.137:/tmp/ 删除签署请求文件。   在CA证书服务器上签署证书 创建序列号文件 touch index.txt serial echo 01 > serial 签署证书 openssl ca -in /tmp/httpd_csr.pem -out certs/httpd_crt.pem 以及签署过的证书,要放在certs/目录下   把刚刚签署后的证书发回给132主机。 scp certs/httpd_crt.pem 192.168.60.132:/etc/httpd/ssl 删除签署请求文件   在132主机操作 此时证书文件放在/etc/httpd/ssl目录下的httpd_crt.pem文件 编辑ssl配置文件 vim /etc/httpd/conf.d/ssl.conf 重启服务   在win10用户机端操作 把ca服务器的证书复制到win10系统,然后导入到浏览器中。 scp root@192.168.60.137:/etc/pki/CA/cacert.pem /var/ftp/pub 导入ca证书到浏览器的证书管理器。   https://www2.stux.com/         已经通过认证。     httpd-2.4的搭载方法   实验环境 CentOS 7    1台 IP地址: 192.168.60.138 Centos7主机,用于安装httpd-2.4 关闭Selinux 关闭防火墙 要架设一个本地httpd服务器一般需要下面2个软件程序包: httpd-2.4.6-88.el7.centos.x86_64,httpd服务主程序 httpd-tools-2.4.x86_64,测试http服务的工具程序,如ab     安装httpd-2.4(在138主机上面操作) yum install -y httpd httpd-tools   运行服务 systemctl start httpd.service 测试连接成功,说明服务能正常启动。 创建网页文件根目录 mkdir -pv /web/vhosts/{www1,www2} 创建主页文件   vim /web/vhosts/www1/index.html vim /web/vhosts/www2/index.html   创建日志文件夹 mkdir -pv /var/log/httpd/{www1,www2}   配置虚拟主机 vim conf.d/host1.conf vim conf.d/host2.conf   修改win10中的hosts文件 192.168.60.138 www1.stuX.comwww2.stuX.com   测试访问   配置访问日志与错误日志 vim conf.d/host1.conf vim conf.d/host2.conf   测试访问日志功能是否正常 略过。。   Server-status状态页面的设置   检查status模块是否被装载 httpd -M|grep status 编辑www1主机的配置文件 vim conf.d/host1.conf   测试访问成功。         Server-status状态页面的访问质询设置   使用htpasswd工具创建访问用户的数据库     编辑配置文件 vim conf.d/host1.conf     测试成功。     设置访问黑名单   vim conf.d/host1.conf               为www2主机配置CA证书服务器   实验环境 CentOS 7    2台 IP地址: 192.168.60.138  Centos7主机,安装httpd-2.4,作为网站服务器 192.168.60.137 Centos7主机,用于作为CA证书服务器 192.168.60.1 Win10主机,用做访问客户机。 关闭Selinux 关闭防火墙   在CA证书服务器上配置CA环境 在137主机上操作 cd /etc/pki/CA/ (umask 077;openssl genrsa -out private/cakey.pem 2048) 生成自签证书 openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365 在httpd主机上安装ssl模块 138主机操作 安装mod_ssl模块 yum install -y mod_ssl 创建ssl目录,用于放置私钥文件。 mkdir /etc/httpd/ssl cd /etc/httpd/ssl 创建私钥文件 (umask 077;openssl genrsa -out httpd_key.pem 1024) 生成签署请求文件 openssl req -new -key httpd_key.pem -out httpd_csr.pem     把上面的签署文件发送到CA服务器137主机上。 scp httpd_csr.pem root@192.168.60.137:/tmp/ 删除签署请求文件。   在CA证书服务器上签署证书 创建序列号文件 touch index.txt serial echo 01 > serial 签署证书 openssl ca -in /tmp/httpd_csr.pem -out certs/httpd_crt.pem 以及签署过的证书,要放在certs/目录下   把刚刚签署后的证书发回给138主机。 scp certs/httpd_crt.pem 192.168.60.138:/etc/httpd/ssl 删除签署请求文件   在138主机操作 此时证书文件放在/etc/httpd/ssl目录下的httpd_crt.pem文件 编辑ssl配置文件 vim /etc/httpd/conf.d/ssl.conf 重启服务   在win10用户机端操作 把ca服务器的证书复制到win10系统,然后导入到浏览器中。 scp root@192.168.60.137:/etc/pki/CA/cacert.pem /var/ftp/pub 导入ca证书到浏览器的证书管理器。   https://www2.stux.com/         已经通过认证。