一、实验要求
1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!
2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站
(1) www.openlab.com/student 网站访问学生信息
(2) www.openlab.com/data 网站访问教学资料
(3) www.openlab.com/money 网站访问缴费网站
3.内部的细节要求
(1) 学生信息网站只有song和tian两人可以访问,其他用户不能访问。
(2) 访问缴费网站实现数据加密基于https访问。
二、环境准备
(1)Linux操作系统(RedHat9),xftp以及浏览器
(2)主机(server)可以联网,并熟知网络信息
(3)安装软件
[root@server ~]# yum install httpd -y
Apache主要提供www的服务器平台
[root@server ~]# yum install mod_ssl -y
mod_ssl组件:是apache的一个模块,以openssl的工具箱为基础专门为apache提供密码保护的一种组件模块
(4)关闭所有安全软件
[root@server ~]# setenforce 0 # 临时关闭selinux
[root@server ~]# systemctl stop firewalld # 关闭防火墙
三、具体配置
1、创建网页文件的存储目录
# 新建目录并且创建html文件
[root@server ~]# mkdir -p /www/openlab
[root@server ~]# mkdir -p /www/openlab/data
[root@server ~]# mkdir -p /www/openlab/student
[root@server ~]# mkdir -p /www/openlab/money/money
[root@server ~]#echo "Welcome to openlab!!" > /www/openlab/index.html
[root@server ~]#echo "教学资料" > /www/openlab/data/index.html
[root@server ~]#echo "学生资料" > /www/openlab/student/index.html
[root@server ~]#echo "Student payment" > /www/openlab/money/money/index.html
2、配置IP地址与域名的映射关系,配置本地hosts文件实现
# linux端
[root@server ~]# vim /etc/hosts
192.168.163.132 www.openlab.com
# windows端,打开C:\Windows\System32\drivers\etc\hosts,添加以下内容:
192.168.163.132 www.openlab.com #保存退出(注意权限问题)
3、设置主配置文件实现基于域名访问网站
[root@server ~]# vim /etc/httpd/conf/httpd.conf
# 定位最后一行,输入以下内容:
<VirtualHost 192.168.163.132>
DocumentRoot /www/openlab
ServerName 'www.openlab.com'
<Directory /www/openlab>
AllowOverride None
require all granted
</Directory>
</VirtualHost>
[root@server ~]# systemctl restart httpd #重启服务,测试
# 打开浏览器输入域名测试
4、创建用户song和tian配置密码实现网站访问控制
[root@server ~]# htpasswd -c /etc/httpd/passwd song #需要验证密码访问的账户名称
# htpasswd : 生成密码数据的命令
# /etc/httpd/passwd : 存储密码的数据库文件
New password: # 123456
Re-type new password: # 123456
Adding password for user song
[root@server ~]# htpasswd /etc/httpd/passwd tian# 注意:第二次给tian账户设置密码,不能加-c参数,否则会覆盖
New password: # 123456
Re-type new password: # 123456
Adding password for user tian
[root@server ~]# systemctl restart httpd #重启服务,测试
5、编辑==个人主页配置文件==,设置对应参数和访问时使用密码
[root@server ~]# vim /etc/httpd/conf.d/userdir.conf
#UserDir disabled # 此行增加#,注释掉,表示开放个人用户主页功能
UserDir public_html # 此行去掉#,表示网站数据保存在用户家目录的public_html
# 定位第31-35行,删除后增加如下内容:
<Directory "/www/openlab/student"> #区域设置,设置用户网页验证的目录
authuserfile "/etc/httpd/passwd" #设置刚刚生成的密码文件
authtype basic #加密模式
authname "My privately web" #用户登录的提示信息
require user tian song #用户进行登录时需要验证密码的账户名
</Directory>
6、搭建HTTP+SSL 的加密认证实现访问缴费网站时数据加密
(1)在/etc/pki/tls/private中生成私钥文件
[root@server ~]# cd /etc/pki/tls/private/ # 进入存储私钥文件的目录
# 使用openssl命令建立私钥文件
[root@server private]# openssl genrsa -aes128 2048 > money.key
Enter PEM pass phrase: # 设置私钥文件的加密密码 ,123456
Verifying - Enter PEM pass phrase: # 重输确认密码,123456
(2)在/etc/pli/tls/certs目录中新建数字证书
[root@server private]# cd /etc/pki/tls/certs/ # 进入存储数字证书文件的目录
[root@server certs]# openssl req -utf8 -new -key /etc/pki/tls/private/zy.key -x509 -days 365 -out zy.crt
Enter pass phrase for /etc/pki/tls/private/zy.key: # 输入私钥加密的密码123456
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]:86
State or Province Name (full name) []:shanxi
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) []:server
Email Address []:apply@qq.com
# 信息解释:
国家:86
省份:shanxi
城市:xi'an
公司: openlab
部门:RHCE
主机名:server
邮箱:apply@qq.com
(3)修改SSL配置文件
[root@server ~]# vim /etc/httpd/conf.d/ssl.conf
#定位最后一行输入以下内容
<VirtualHost 192.168.163.132:443> # 设置虚拟主机区域配置,设置IP及端口号
SSLEngine on # 开启ssl
SSLCertificateFile /etc/pki/tls/certs/money.crt # 证书存储路径
SSLCertificateKeyFile /etc/pki/tls/private/money.key # 私钥存储路径
ServerName www.openlab.com/money # 主机名
DocumentRoot /www/openlab/money # 启动目录
</VirtualHost>
<Directory /www/openlab/money> # 网站目录的权限设置
AllowOverride none
Require all granted
</Directory>
#:wq保存后退出,重启服务进行测试
[root@server ~]# systemctl start httpd
🔐 Enter TLS private key passphrase for 192.168.48.130:443 (RSA) : ****** # 输入私钥的密码:123456
通过浏览器输入https://192.168.48.130,点击高级,接受风险并浏览
#数字证书为自己编写浏览器不信任这份证书所导致的报出风险
四、实验结果
(1)在本机windows端浏览器中分别输入www.openlab.com和没有任何要求的www.openlab.com/data网站显示如下结果:
(2)在本机windows端浏览器中输入www.openlab.com/student网站显示如下结果:
使用song用户或者tian用户配置的用户名和密码才可访问该网站,输入正确信息后显示如下内容:
(3)在本机windows端浏览器中输入https://www.openlab.com/money网站显示如下结果:
通过浏览器输入https://www.openlab.com/money点击高级,接受风险并浏览