网络服务第三次作业
综合练习:请给openlab搭建web网站
网站需求:
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:准备工作
[root@master ~]# systemctl status firewalld #检查防火墙是否关闭
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@master ~]# getenforce 检查SELinux是否关闭
Disabled
[root@master ~]# yum install nginx mod_ssl -y #安装nginx服务和mod_ssl模块
[root@master ~]# systemctl enable --now nginx #设置开机自启并立刻启动nginx服务
# Windows的C:\Windows\System32\drivers\etc\hosts 文件进行DNS映射
192.168.85.131 www.openlab.com #在最后一行添加,一定要写自己虚拟的IP
2:创建www.openlab.com网站
[root@master ~]# mkdir /www/openlab/ -p #把网页内容放在/www/openlab/目录下
[root@master ~]# echo "welcome to openlab!!!" > /www/openlab/index.html
echo "welcome to openlabrm -rf /www/openlab/index.html !" > /www/openlab/index.html
[root@master ~]# cat /www/openlab/index.html
welcome to openlabrm -rf /www/openlab/index.html !
[root@master ~]# vim /etc/nginx/nginx.conf #进入并修改nginx配置文件
server {
39 listen 80;
40 listen [::]:80;
41 server_name www.openlab.com; #这里输入自己IP对应的域名
42 root /www/openlab; #这里的路径是默认网页的上一级目录路径
43
44 # Load configuration files for the default server block.
45 include /etc/nginx/default.d/*.conf;
46
47 error_page 404 /404.html;
48 location = /40x.html {
49 }
50
51 error_page 500 502 503 504 /50x.html;
52 location = /50x.html {
53 }
54 }
3:创建教学资料子网站www.openlab.com/data
[root@master ~]# mkdir /www/openlab/data #将data网站放在/www/openlab/data目录下
[root@master ~]# echo "this is data" >> /www/openlab/data/index.html
[root@master ~]# cat /www/openlab/data/index.html
this is data
[root@master ~]# vim /etc/nginx/nginx.conf #修改配置文件
38 server {
39 listen 80;
40 listen [::]:80;
41 server_name www.openlab.com;
42 root /www/openlab;
43 #自己写一个location
44 location /data{
45 alias /www/openlab/data; #这里填写data网站的绝对路径
46 index index.html index.htm; #说明网站类型是html或htm
47 }
4:创建学生信息子网站www.openlab.com/student1
[root@master ~]# mkdir /www/openlab/student #将student网站放在/www/openlab/student目录下
[root@master ~]# echo "this is student" > /www/openlab/student/index.html
[root@master ~]# cat /www/openlab/student/index.html
this is student
[root@master ~]# useradd song #创建song用户
[root@master ~]# echo 123456 | passwd --stdin song
更改用户 song 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@master ~]# useradd tian #创建tian用户
[root@master ~]# echo 654321 | passwd --stdin tian
更改用户 tian 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@master ~]# tail -2 /etc/passwd #检测文件看用户是否创建成功
song:x:1001:1001::/home/song:/bin/bash
tian:x:1002:1002::/home/tian:/bin/bash
[root@master ~]# htpasswd -c /www/openlab/student/password song #创建song用户认证密码
New password: #输入密码(自己创一个)
Re-type new password: #确认密码
Adding password for user song
#第二次创建用户认证密码时不用添加-c选项,否则会覆盖原有用户的密码
[root@master ~]# htpasswd /www/openlab/student/password tian #创建tian用户认证密码
New password: #输入密码
Re-type new password: #确认密码
Adding password for user tian
[root@master ~]# cat /www/openlab/student/password #查看用户密码,这是以密文形式的显示
song:$apr1$rnQKZUxA$jztE4l2TnynqqB/XylVW0/
tian:$apr1$zMAsAScP$eaIdPhcW8wfh9fQhvrx6R.
[root@master ~]# vim /etc/nginx/nginx.conf #修改配置文件
server {
listen 80;
listen [::]:80;
server_name www.openlab.com;
root /www/openlab;
location /data{
alias /www/openlab/data;
index index.html index.htm;
}
#再添加一个location
location /student{
alias /www/openlab/student; #这里填写student网站的绝对路径
index index.html index.htm; #说明网站类型是html或htm
auth_basic "Please input password"; #提示信息
auth_basic_user_file /www/openlab/student/password; #这是放密码的路径
}
5:创建缴费子网站www.openlab.com/money
[root@master ~]# mkdir /www/openlab/money #将money网站放在/www/openlab/money目录下
[root@master ~]# echo "this is money" > /www/openlab/money/index.html
[root@master ~]# cat /www/openlab/money/index.html
this is money
制作证书
# 在www/openlab/money/目录下制作整数所用的私钥文件money.key
[root@master ~]# openssl genrsa -aes128 2048 > /www/openlab/money/money.key
Generating RSA private key, 2048 bit long modulus (2 primes)
...............................................................+++++
...................................+++++
e is 65537 (0x010001)
Enter pass phrase: # 输入加密私钥的密码123456
Verifying - Enter pass phrase: #再输一遍
# 制作证书
[root@master ~]# openssl req -utf8 -new -key /www/openlab/money/money.key -x509 -days 365 -out /www/openlab/money/money.crt
Enter pass phrase for /www/openlab/money/money.key: # 需要输入加密私钥的密码
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) [AU]:86 #国家代码
State or Province Name (full name) [Some-State]:henan # 省份
Locality Name (eg, city) []:luoyang # 城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dev # 公司
Organizational Unit Name (eg, section) []:test # 部门
Common Name (e.g. server FQDN or YOUR name) []:master # 主机名
Email Address []:12345@qq.com # 邮箱
[root@master money]# cp money.key money.key.org #将原私钥文件 money.key 复制一份,保存为 money.key.org
#使用 OpenSSL 工具对备份文件 money.key.org 进行处理,并将处理后的结果输出到 money.key
[root@master money]# openssl rsa -in money.key.org -out money.key
Enter pass phrase for money.key.org: # 输入私钥密码
writing RSA key
[root@master money]# vim /etc/nginx/nginx.conf #进入配置文件
#新添加一个server
server{
listen 443 ssl http2;
server_name www.openlab.com;
location /money{
alias /www/openlab/money;
index index.html index;
}
ssl_certificate "/www/openlab/money/money.crt";
ssl_certificate_key "/www/openlab/money/money.key";
}
[root@master money]# systemctl restart nginx #重启nginx服务
6.测试
1访问www.openlab.com
2.访问www.openlab.com/data
3.访问www.openlab.com/student
4.访问www.openlab.com/money