基于Nginx搭建OpenLab多子站点:实现访问控制与HTTPS加密

网络服务第三次作业

综合练习:请给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
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值