网站需求
1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!!
2.给该公司创建三个网站目录分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student 网站访问学生信息,www.openlab.com/data网站访问教学资料
www.openlab.com/money网站访问缴费网站。
3.要求:
(1)学生信息网站只有song和tian两人可以访问,其他网站所有用户用能访问。
(2)访问缴费网站实现数据加密基于https访问。
准备
1.需要两台Linux虚拟机,一台为服务端server,另一台为客户端client
server IPV4:192.168.110.136/24 client IPV4:192.168.110.134/24
2.服务端需要关闭防火墙和Linux的安全服务seLinux
[root@server ~]# systemctl stop firewalld
[root@server ~]# setenforce 0
[root@server ~]# getenforce
Permissive3.安装httpd,mol_ssl
[root@server ~]# yum install -y httpd mod_ssl
配置
1.客户端通过IP地址可以正常访问服务端内容
[root@server ~]# mkdir -v /openlab/ #创建目录
已创建目录 '/openlab/'
[root@server ~]# echo "welcome to openlab!!!" > /openlab/index.html #写入内容
[root@server ~]# vim /etc/httpd/conf.d/openlab.conf #打开httpd的额外参数配置文件<Directory "/openlab/">
Options Indexes FollowSymLinks
AllowOverride NoneRequire all granted
</Directory><VirtualHost 192.168.110.136:80>
ServerAdmin admin@outlook.com
DocumentRoot "/openlab/"
ServerName www.openlab.com
</VirtualHost>
[root@server ~]# httpd -t #语法检测
Syntax OK
[root@server ~]# systemctl restart httpd #重启服务客户端访问
[root@client ~]# curl 192.168.110.136
welcome to openlab!!!
2.搭建学生信息,教学资料,缴费网站页面
[root@server ~]# mkdir /openlab/{student,data,money} -v
mkdir: 已创建目录 '/openlab/student'
mkdir: 已创建目录 '/openlab/data'
mkdir: 已创建目录 '/openlab/money'[root@server ~]# echo "学生信息" > /openlab/student/index.html #写入内容
[root@server ~]# echo "教育网站" > /openlab/data/index.html #写入内容
[root@server ~]# echo "缴费网站" > /openlab/money/index.html #写入内容首先配置student页面只有song和tian用户访问
[root@server ~]# htpasswd -c /etc/httpd/conf.d/httpd song #创建sond的身份验证文件
New password:
Re-type new password:
Adding password for user song
[root@server ~]# htpasswd /etc/httpd/conf.d/httpd tian #添加tain的身份验证文件
New password:
Re-type new password:
Adding password for user tian[root@server ~]# cat /etc/httpd/conf.d/httpd
song:$apr1$XWPO6i0/$hNsM5W/Gx3ukFsPokAEEH.
tian:$apr1$SSblX1SO$YGyWDIuzZmCuLfhBnqn6m1[root@server ~]# vim /etc/httpd/conf.d/openlab.conf #在额外参数配置文件添加内容
<VirtualHost 192.168.110.136:80>
ServerAdmin admin@outlook.com
DocumentRoot "/openlab/student"
ServerName www.openlab.com
</VirtualHost>
<Directory "/openlab/student">
Options Indexes FollowSymLinks
AllowOverride None
AuthType Basic
AuthName "Restricted Files"
AuthUserFile "/etc/httpd/conf.d/httpd " #身份验证文件的路径
Require user song tian #允许访问的用户</Directory>
[root@server ~]# httpd -t #语法检测
Syntax OK
[root@server ~]# systemctl restart httpd #重启服务客户端访问
[root@client ~]# curl 192.168.110.136/student/ -u song
Enter host password for user 'song':
学生信息
[root@client ~]# curl 192.168.110.136/student/ -u tian
Enter host password for user 'tian':
学生信息
其他用户访问配置教学资料网站所有用户都可访问
[root@server ~]# vim /etc/httpd/conf.d/openlab.conf #打开配置文件添加内容
<Directory "/openlab/data/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory><VirtualHost 192.168.110.136:80>
ServerAdmin admin@outlook.com
DocumentRoot "/openlab/data/"
ServerName www.openlab.com
</VirtualHost>
[root@server ~]# httpd -t
Syntax OK
[root@server ~]# systemctl restart httpd
客户端访问
[root@client ~]# curl 192.168.110.136/data/
教育网站配置缴费网站实现数据加密基于https访问
[root@server ~]# cd /etc/pki/tls/certs/ #存放着一些证书文件
[root@server certs]# openssl genrsa 2048 >> openlab.key #生成私钥文件
[root@server certs]# openssl req -utf8 -new -key openlab.key -x509 -days 100 -out openlab.crt #生成证书
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:SN #国家
State or Province Name (full name) []:CN #省份
Locality Name (eg, city) [Default City]:XI'AN #城市
Organization Name (eg, company) [Default Company Ltd]:OPENLAB #企业
Organizational Unit Name (eg, section) []:RHCE #部门
Common Name (eg, your name or your server's hostname) []:www.openlab.com 域名
Email Address []:admi@outlook.com #邮件
[root@server ~]# vim /etc/httpd/conf.d/openlab.conf<VirtualHost 192.168.110.136:443>
DocumentRoot "/openlab/money/"
ServerName www.openlab.com
SSLEngine on
SSLCertificateFile "/etc/pki/tls/certs/openlab.crt"
SSLCertificateKeyFile "/etc/pki/tls/certs/openlab.key"
</VirtualHost><Directory "/openlab/money/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
[root@server ~]# httpd -t
Syntax OK
[root@server ~]# systemctl restart httpd客户端访问
[root@client ~]# curl https://192.168.110.136 -k #-k为忽略证书访问
缴费网站
[root@client ~]# curl 192.168.110.136/money/ -k
缴费网站/etc/httpd/conf.d/openlab.conf配置文件最终内容
3.客户端通过域名可以正常访问服务端内容
在没有DNS域名解析服务器的情况下可以使用本机hosts文件,hosts文件其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库"
在Linux下hosts文件地址为/etc/host
[root@client ~]# vim /etc/hosts #写入内容
192.168.110.136 www.openlab.com
[root@client ~]# curl www.openlab.com
welcome to openlab!!!
[root@client ~]# curl www.openlab.com/student/ -u song
Enter host password for user 'song':
学生信息
[root@client ~]# curl www.openlab.com/student/ -u tian
Enter host password for user 'tian':
学生信息
[root@client ~]# curl www.openlab.com/data/
教育网站
[root@client ~]# curl https://www.openlab.com -k
缴费网站
[root@client ~]# curl www.openlab.com/money/ -k
缴费网站在Windows客户端下hosts文件路径为C:\Windows\System32\drivers\etc\hosts
添加内容,浏览器访问即可,因为www.openlab.com该域名已存在所以浏览器无法访问