CentOS6主要使用http2.2版本,CentOS7使用的是http2.4版本,两个版本之间存在这部分区别,2.2的event模块是处于测试阶段的,2.4的event模块则是可以正常投入使用的;2.2不支持动态装卸载模块,而2.4支持动态装卸载模块;

  使用CentOS6.7来建立httpd服务,主要实现的功能有:

  ①建立两个虚拟主机www1,www2,拥有单独的错误日志和访问日志;

  ②通过www1的server-status能够查看状态信息,但只有link用户能够访问;

  ③www2设置访问范围,允许其他主机访问,但不允许192.168.1.0/24IP地址访问;

  ④为www2提供https服务;

  首先建立两个虚拟主机,在/etc/httpd/conf.d/下创建两个片虚拟主机文件,vhosts-www1.conf与

vhosts-www2.conf

  

  书写片配置文件vhosts-www1.conf的主要配置

  如DocmentRoot,ServerName,ErrorLog,CustomLog并设置其server-status的访问权限,只允许link用户访问,创建其根文件系统在/myweb/vhosts/www1下;

  片配置文件vhosts-www1.conf

  

  

  创建www1,错误日志,访问日志的对应目录路径;使用htpasswd命令创建虚拟用户密钥;

-c选项只有在第一次创建虚拟用户文件时需要,-m选项表示用md5单向加密算法加密;

  

  www1运行结果:

  主页

  

  server-status:

  

  书写片配置文件vhosts-www2.conf的主要配置:

  

  

  设置了Order权限,使用telnet进行测试

  如:

  

  

 

  www2运行结果:

  

  要使用域名的方式访问时,需要在windows下的hosts配置文件中加一条关于该域名的记录,

  如:

  172.16.72.4

  为www2虚拟主机设置https服务:

  首先在客户端处生成私钥,及其请求证书:

  

  

  

  使用scp将客户端请求证书发往私人CA处:

  

  安装mod_ssl,使用yum install mod_ssl

  mod_ssl是https使用的前提

  

  构建私人CA:

    将私钥以及公钥放在指定路径下

    私钥:/etc/pki/CA/private/cakey.pem

    公钥:/etc/pki/CA/cacert.pem

    创建两个私人CA需要的配置文件在/etc/pki/CA下

    echo 01 > serial

    touch index.txt

   

   

   使用scp将生成的客户端证书发送给客户端

   

   客户端:

   

  

   将服务器端私人CA的公钥到处到本地windows下,并将其导入到浏览器中的证书文件中

   如:谷歌

   

  

  客户端下/etc/httpd/conf.d/ssl.conf

  

  设置客户端的私钥以及认证完后的证书存放路径,分别用指令SSLCertificateKeyFile和

  SSLCertificateFile;

  

  https设置结果:

  

  使用CentOS7.0建立httpd服务,主要实现的功能有:

  ①建立两个虚拟主机www1,www2,拥有单独的错误日志和访问日志;

  ②通过www1的server-status能够查看状态信息,但只有link用户能够访问;

  ③www2设置访问范围,允许其他主机访问,但不允许192.168.1.0/24IP地址访问;

  ④为www2提供https服务;

  在centos7的/etc/httpd/conf.d下创建片配置文件vhosts-www1.conf与vhosts-www2.conf

  

  vhosts-www1.conf:

  

  CentOS7的httpd是2.4版本的,该版本下的片配置文件的书写大致相同,不同在于,CentOS6.7对于访问范围若不指定时默认是全部,而CentOS7对于访问范围不指定时默认的就是没有,这样所有的IP都无法访问该网页;

  Require all granted:全部IP都可以访问;

  Require all denied:全部IP都不可以访问;

  设置服务器状态的访问权限也同CentOS6一样;

 

  创建根目录,并在根目录中加入网页文件;

  

  创建错误日志以及访问日志的目录:

  

  重载httpd配置文件:

  systemctl reload httpd.service

  

  www1运行结果:

  主页

  

  

  server-status

  

  

  vhosts-www2.conf:

  

  同时控制主机访问以及拒绝时,需要将其放置在<RequireAll></RequireAll>中进行设置;

  

  创建根目录以及日志目录:

  

  

  httpd -t验证语法是否正确:

  

  

  重载httpd配置文件:

  systemctl reload httpd.service

  www2运行结果:

  

  www2设置https:

 创建私人CA:

  

  

  

  客户端配置:

  yum install httpd

  yum install mod_ssl

  vim /etc/httpd/conf.d/ssl.conf

  

  

  mkdir -p /myweb/vhosts/www2

  在该目录下创建index.html文件;

  配置该客户端的私钥,并生成证书请求文件

  

  

  

  将httpd.csr文件发往服务器端,生成证书

  

  将该证书发往客户端,并将服务器端的CA公钥放在windows下,将其导入到要访问的浏览器的证书中;

  客户端:

  

  浏览器: