nginx的https搭建

实验要求

1.防火墙不能关闭,让其开放http协议https协议

2.该网站具备账户验证

3.https

1.打开防火墙并把http和https服务(允许80/tcp和443/tcp端口)

1-1打开防火墙和nginx服务

bash 复制代码
//1.查看服务状态
[root@server ~]# systemctl status firewalld.service 
○ firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled)
     Active: inactive (dead)
       Docs: man:firewalld(1)
[root@server ~]# systemctl status nginx.service 
● nginx.service - The nginx HTTP and reverse proxy server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
     Active: active (running) since Thu 2025-11-27 14:39:08 CST; 2min 9s ago
    
//2.开启未开启的服务
[root@server ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled)
     Active: active (running) since Thu 2025-11-27 14:42:51 CST; 2s ago
[root@server ~]# 

1-2允许http和https

bash 复制代码
#1.添加服务的方式允许nginx
firewall-cmd --add-service=http
firewall-cmd --add-service=https

#2.添加端口的方式允许nginx
firewall-cmd --add-port=80/tcp
firewall-cmd -add-port=443/tcp

[root@server ~]# firewall-cmd --add-port=80/tcp
success
[root@server ~]# firewall-cmd --add-port=443/tcp
success

#取消
firewall-cmd --remove-port=80/tcp
firewall-cmd --remove-service=http


#注意:如果不保存,防火墙服务重启时这些规则会消失

#保存命令即在选项前加--permanent(永久的长久的)
firewall-cmd --permanent --add-service=http
#重新加载
firewall-cmd --reload

#永久删除同理
firewall-cmd --permanent --remove-service=http

1-3验证

bash 复制代码
# 查看当前活动的防火墙规则
firewall-cmd --list-all


[root@server ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 80/tcp 443/tcp
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	rule family="ipv4" source address="192.168.25.200" service name="http" reject
[root@server ~]# 


# 只查看开放的端口
firewall-cmd --list-ports
[root@server ~]# firewall-cmd --list-ports 
80/tcp 443/tcp
[root@server ~]# 


# 只查看允许的服务
firewall-cmd --list-services

2.网站要进行用户验证

bash 复制代码
1.新增一个管理网站登录的用户(用于用户验证)
[root@server ~]# useradd xier0
[root@server ~]# passwd xier0
更改用户 xier0 的密码 。
新的密码: 
无效的密码: 密码少于 8 个字符
重新输入新的密码: 
passwd:所有的身份验证令牌已经成功更新。
[root@server ~]# 


2.将网站和账户关联
2-1 安装工具httpd-tools
yum install httpd-tools
2-2 使用htpasswd命令关联用户和网站
htpasswd -c /etc/nginx/passwd xier1
New password:

#-c: 表示创建一个新的密码文件
#- 重要性 : 如果指定的文件已存在,使用 -c 选项会覆盖该文件
#- 注意事项 : 当要向现有文件添加新用户时,不应该使用此选项
#- 密码强度 : 系统会接受任何密码,但强密码对安全性至关重要
#- 加密算法 : 默认使用 MD5 哈希,可通过 -B (bcrypt)、 -d (CRYPT)等选项指定其他算法

3.修改nginx的配置文件
vim /etc/nginx/nginx.conf


  36     include /etc/nginx/conf.d/*.conf;
  37 
  38     server {
  39         listen       80;
  40         #listen       [::]:80;
  41         server_name  www.xier0.com;
  42         #root         /usr/share/nginx/html;
  43     root         /web;
  44     #   index        wanglx.html;
  45     autoindex   on;
  46     #index      2.png;
  47     auth_basic  "input your passwd";//登录提示
  48     auth_basic_user_file    /etc/nginx/passwd;//管理网站的密码文件
  49 
  50         # Load configuration files for the default server block.
  51         include /etc/nginx/default.d/*.conf;
  52 
  53         error_page 404 /404.html;
  54         location = /404.html {
  55         }
  56 
  57         error_page 500 502 503 504 /50x.html;
  58         location = /50x.html {
  59         }
  60     }
  61 
  62 # Settin

4.检查并重新加载
nginx -t
nginx -s reload

5.浏览器验证

注意:如果使用windows浏览器验证,要在

C:\Windows\System32\drivers\etc\hosts文件中添加对应网站域名的IP地址解析

2-2如果已经有管理账户的密码文件,则

bash 复制代码
[root@server ~]# htpasswd /etc/nginx/passwd xier0
New password:                              #(xier)
Re-type new password: 
Adding password for user xier0
[root@server ~]# 

// 如果该用户名已存在,将更新其密码

//- -D :删除用户,例如 htpasswd -D /etc/nginx/passwd xier1
//- -v :验证用户密码是否正确
//- -b :在命令行中直接提供密码(不推荐,因为密码会显示在命令历史中)

3.搭建https

https即http + ssl(socket secret layer)

3-1 创建https网页证书

bash 复制代码
//1.创建非对称加密使用的私钥文件
openssl genrsa -out xier1.key

//2.通过私钥文件生成证书文件
openssl req -new -key xier1.key -x509 -days 365 -out xier1.crt
// req:申请创建证书
//-new:新的证书
//-key xier1.key:使用xier1.key这个密钥
//-x509: 此为测试证书
/-days: 证书有效期

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]:cn
State or Province Name (full name) []:guangxi
Locality Name (eg, city) [Default City]:huilin
Organization Name (eg, company) [Default Company Ltd]:eg
Organizational Unit Name (eg, section) []:xi^Huexiao
Common Name (eg, your name or your server's hostname) []:xier0,^H^H^H
Email Address []:xier

3-2

bash 复制代码
//1.将生成的证书移动到nginx配置目录中'
[root@server xier]# mv xier0.key xier0.crt /etc/nginx/
[root@server xier]# 


//2.绑定虚拟主机和证书
server {
    listen 443 ssl;                  # 监听443端口并启用SSL
    server_name www.xier1.com;         # 你的域名
    
    # SSL证书配置
    ssl_certificate /etc/nginx/xier1.crt;    # 证书文件路径
    ssl_certificate_key /etc/nginx/xier1.key;  # 私钥文件路径
    
    
    # 网站根目录
    root /var/www/html;              # 你的网站文件目录
    index index.html index.htm index.php;  # 默认索引文件
    
  
    }

}


//3.检查并重新加载
nginx -t
nginx -s reload

//4.浏览器验证
相关推荐
ai小陈10 小时前
GPU服务器租用存储验收:检查点写入与磁盘吞吐实战
运维·服务器·人工智能·ai·ssh·gpu算力
有毒的教程13 小时前
VMware仅主机模式:物理机 ↔ 虚拟机 文件共享
运维
豆豆15 小时前
2026 年建站架构选型实录:从 SC-081v3 证书新政与备案新规倒推 CMS 选型口径
架构·https·cms·geo·acme·web架构·pageadmin
山岚的运维笔记15 小时前
ComfyUI NVIDIA安装教程:官方便携版下载+run_nvidia_gpu.bat启动,8G显存Windows实操
运维·服务器·windows·笔记·prompt·aigc·comfyui
海宇大数据16 小时前
零信任架构实战:基于海宇活体识别V步骤1构建自动化远程公证会话初始化网关
运维·人工智能·架构·自动化
lisanmengmeng16 小时前
Nagios邮件报警的配置
linux·运维·服务器
Ruiery16 小时前
Linux 6.6内核 CPU 深度解析(六):cpufreq
linux·运维·服务器
天远数科17 小时前
零信任架构实战:基于天远全能消金报告构建自动化消费分期网关
运维·人工智能·架构·自动化
硅基手札17 小时前
【linux内核专栏 08】时间与定时器
linux·运维·服务器
想做小南娘,发现自己是女生喵17 小时前
Linux之Ubuntu入门篇知识总结
linux·运维·服务器