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下,将其导入到要访问的浏览器的证书中;
客户端:
浏览器: