nginx访问控制、用户认证、https

news2024/11/16 21:34:30

nginx访问控制

用于location段

Allow:设定允许哪台或哪些主机访问,多个参数间用空格隔开

Deny:设定禁止那台或哪些主机访问,多个参数间用空格隔开

//deny
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
        location /status {
                echo "lisy";
                deny 192.168.35.143;
        }
[root@nginx ~]# nginx -s reload
//验证
[root@test ~]# curl http://192.168.35.142/status
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.24.0</center>
</body>
</html>

//开启stub_status模块,stub_status模块主要作用于查看nginx的一些状态信息
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
        location /status {
                echo "lisy";
                stub_status on;
        }

[root@nginx ~]# nginx -s reload
//查看状态信息
[root@test ~]# curl http://192.168.35.142/status
Active connections: 1 
server accepts handled requests
 19 19 19 
Reading: 0 Writing: 1 Waiting: 0
//Active connections:当前nginx正在处理的活动连接数
//Server accepts handled requests:nginx总共处理了63个连接,成功创建63次握手,总共处理了62个请求
//Reading:nginx读取到客户端的Header信息数
//Writing:nginx返回给客户端的eader信息数
//Waiting:开启keep-alive的情况下,这个值等于active-(reading+writing),意思就是nginx已经处理完成,正在等候下一次请求指令的驻留连接。所以,在访问效率高、请求很快就被处理完毕的情况下,waiting数比较多是正常的。如果reading+writing数较多,则说明并发访问量非常大,正在处理过程中。

//allow和deny同时存在时
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
        location /status {
                echo "lisy";
                allow 192.168.35.143;
                deny all;
        }
[root@nginx ~]# nginx -s reload
//验证
[root@test ~]# curl http://192.168.35.142/status
lisy
[root@test2 ~]# curl http://192.168.35.142/status
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.24.0</center>
</body>
</html>

用户认证

//安装httpd-tools软件包
[root@nginx ~]# yum -y install httpd-tools

//创建用户密钥文件
[root@nginx ~]# htpasswd -c -m /usr/local/nginx/conf/.user_auth_file lsy123
New password: 
Re-type new password: 
Adding password for user lsy123

//配置nginx(注意auth_basic_user_file必须用绝对路径)
[root@nginx conf]# vim nginx.conf
[root@nginx conf]# nginx -s reload

验证 

 

 https配置

//环境准备
//nginx/example.com 192.168.35.142
//test.example.com 192/168.35.143

//tesr主机
//在CA服务器中生成一对密钥
[root@test ~]# mkdir  -p  /etc/pki/CA/private
[root@test ~]# cd /etc/pki/CA/
[root@test CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)[root@test CA]# ls
private
[root@test CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 1024
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) []:HB
Locality Name (eg, city) [Default City]:WH
Organization Name (eg, company) [Default Company Ltd]:huayu
Organizational Unit Name (eg, section) []:linux
Common Name (eg, your name or your server's hostname) []:lsy
Email Address []:lsy@example.com

//nginx主机
//在nginix中生成证书签署请求,发送给CA
[root@nginx conf]# (umask 077;openssl genrsa -out httpd.key 2048)
[root@nginx conf]# openssl req -new -key httpd.key -days 1024 -out httpd.csr
Ignoring -days without -x509; not generating a certificate
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) []:HB
Locality Name (eg, city) [Default City]:WH
Organization Name (eg, company) [Default Company Ltd]:huayu
Organizational Unit Name (eg, section) []:linux
Common Name (eg, your name or your server's hostname) []:lsy
Email Address []:lsy@example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

//将证书发送给test主机,在test主机中查看
[root@nginx conf]# scp httpd.csr root@192.168.35.143:/root/
[root@test ~]# ls
anaconda-ks.cfg  httpd.csr

//test主机签署证书
[root@test ~]# mkdir /etc/pki/CA/newcerts
[root@test ~]# touch /etc/pki/CA/index.txt
[root@test ~]# echo "01" > /etc/pki/CA/serial
[root@test ~]# openssl ca -in httpd.csr -out httpd.crt -days 1024
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Aug 26 11:27:32 2024 GMT
            Not After : Jun 16 11:27:32 2027 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = HB
            organizationName          = huayu
            organizationalUnitName    = linux
            commonName                = lsy
            emailAddress              = lsy@example.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            X509v3 Subject Key Identifier: 
                2D:35:3F:B7:26:D7:F1:DE:2C:8D:DC:E7:DC:5C:0E:EB:C3:C7:70:E4
            X509v3 Authority Key Identifier: 
                E6:16:C5:70:7C:2D:BC:B8:A2:60:18:C9:5A:4C:32:1D:5E:F6:94:FF
Certificate is to be certified until Jun 16 11:27:32 2027 GMT (1024 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@test ~]# ls
anaconda-ks.cfg  httpd.crt  httpd.csr

//将签署的证书httpd.crt和服务器的证书cacert.pem发送给nginx
[root@ca ~]# scp httpd.crt root@192.168.35.142:/usr/local/nginx/conf/ 
[root@ca ~]# scp /etc/pki/CA/cacert.pem root@192.168.35.142:/usr/local/nginx/conf/

//nginx主机配置https
[root@nginx conf]# vim nginx.conf
   server {
        listen       443 ssl;
        server_name  localhost;
        ssl_certificate httpd.crt;
        ssl_certificate_key httpd.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
                root    html;                index   index.html index.htm;
        }

//nginx -t 测试配置文件
[root@nginx conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

//编辑测试网页,重载服务,验证
[root@nginx conf]# cd /usr/local/nginx/html/
[root@nginx html]# echo "lsy" > index.html
[root@nginx html]# nginx -s reload

验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2076243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构篇】~链式二叉树(附源码)

链式二叉树 前言&#xff08;含头文件&#xff09;头文件 1.链式二叉树的组成2.前、中、后、层序遍历1.前序遍历2.中序遍历3.后序遍历 3.结点个数以及高度等​4.判断二叉树是否为完全二叉树 前言&#xff08;含头文件&#xff09; 之前的堆是特殊的二叉树是顺序结构的二叉树&a…

python库(20):Jsonschema库描述JSON数据的规范

1 Jsonschema简介 在当今信息时代&#xff0c;数据规范与交换变得越来越重要&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;作为一种轻量级的数据交换格式&#xff0c;被广泛应用于网络通信与前后端数据交互。 JSON Schema是一种用于描述JSON数据的规范…

计算机二级题--函数(scanf)章节

1.scanf函数 1. 2. A:默认使用scanf函数的时候&#xff0c;如果空格&#xff0c;回车或跳格就结束了&#xff0c;不能再继续输入了 (同上知识点&#xff09;

【JavaEE初阶】HTTP协议与使用Fiddler抓包

目录 &#x1f38d;HTTP协议是什么&#xff1f; &#x1f340;应用层协议&#xff08;HTTP&#xff09;存在的意义 &#x1f384;HTTP 协议的工作过程 &#x1f334;HTTP 协议格式 &#x1f333;Fiddler抓包工具的使用 &#x1f6a9;如何抓HTTPS的包&#xff1f; &#…

“视频号小店分销:让你的微信小店也能分销”

在数字时代的浪潮中&#xff0c;微信视频号利用其深厚的社交根基和庞大的用户基础&#xff0c;正逐渐成为新零售领域的一股新兴力量。特别是其视频号小店功能的推出&#xff0c;为商家提供了一个集商品展示、销售促进和营销策略于一体的全方位运营平台&#xff0c;实现了业务流…

医疗器械法规笔记

目录 前言医疗器械法规体系医疗器械监管注册与备案前言 之前的文章中介绍了与软件开发过程中相关的法规(网络安全),同时介绍了如何查找相关行业标准,这些都是平时工作中遇到的细节问题,没有系统性的呈现出医疗器械法规相关的框架,一直想对法规与标准有一个全面的认识和总…

java之继承与多态 1

1.继承的概念&#xff1a;它允许一个类&#xff08;子类&#xff09;继承另一个类&#xff08;父类&#xff09;的属性和方法&#xff0c;从而实现代码的重用和扩展。 父类&#xff08;超类&#xff09;&#xff1a;被继承的类。子类&#xff1a;继承父类的类。子类可以访问父…

OpenHarmony实战开发:Launcher应用安装问题分析报告

1 关键字 Launcher&#xff1b;Storage 2 问题描述 问题现象&#xff1a;安装应用到达 20 个以上后&#xff0c;重启设备&#xff0c;Launcher 页面没有任何应用图标 运行环境&#xff1a;硬件 dayu200&#xff0c;软件&#xff1a;3.1release 测试步骤&#xff1a; 使用…

DrawDB数据库设计工具本地部署结合内网穿透实现团队异地协作办公

文章目录 前言1. Windows本地部署DrawDB2. 安装Cpolar内网穿透3. 实现公网访问DrawDB4. 固定DrawDB公网地址 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击跳转到网站】 前言…

Redis集群技术

目录 一、Redis安装部署 二、Redis主从复制 三、Redis哨兵模式 1、开启Redis哨兵模式 2、Redis哨兵模式选举MASTER全过程 3、Redis哨兵模式数据丢失风险的解决方案 四、Redis Cluster 1、Redis集群部署 2、Redis集群扩容 1、加入MASTER集群 2、分配槽位 3、添加slav…

Linux:开发工具(3)

一、版本控制器git 安装git指令 yum install git 1.1 举例理解版本控制器 举个例子&#xff1a; 比方说老师要求我们交一份实验报告&#xff0c;而你的室友张三是一个非常勤奋的人&#xff0c;所以他很早就写好了第一版交给老师&#xff0c;但老师的要求很高&#xff0c;他觉得…

将 github 仓库同步到个人服务器

场景 把本地项目推送到Github仓库后&#xff0c;如果想部署到服务器上&#xff0c;可以尝试此方案 我的博客是hugo搭建的&#xff0c;每次更新文章会手动推送到Github仓库&#xff0c; 然后利用Actions 脚本自动推送到cf或者vercel 之前我写过一篇 将 hugo 博客搬迁到服务器…

STM案例一:灯闪烁

一、使用元件 STlink&#xff0c;STM32F103C8T6 二、接线方法 STM32与STLINK的接线方法为&#xff1a; GND-->GND DCLK-->SWCLK DIO-->SWDIO 3.3-->3.3V 三、配置调试器 选择魔术棒按钮&#xff0c;单击Debug&#xff0c;选择ST-link Debug&#xff0c;选…

免费JSON在线解析工具网址

1&#xff0c;https://tool.juhe.cn/ JSON在线解析 (juhe.cn) 2&#xff0c;https://www.sojson.com/ JSON在线 | JSON解析格式化—SO JSON在线工具

阿卡迈2.0逆向

阿卡迈&#xff08;akamai&#xff09;我也是第一次第一次搞 阿卡迈检测挺多例如 ua 屏幕 document 自动化检测等等 &#xff0c;还有tls指纹 仅供学习参考吧 当cookie的_abck为 0表示通过&#xff0c;1表示不通过&#xff01;&#xff01;&#xff01; 测试了两个2.0站全都通…

一款特别牛逼还免费的屏幕演示批注注释工具,教学演示工具

功能强大&#xff0c;还免费&#xff01;PEVO Annotator 是一款功能强大的屏幕标注软件&#xff0c;广泛应用于教学演示、屏幕录像等场景。该软件支持多种操作系统&#xff0c;包括 macOS 和 Windows 。它提供了丰富的工具和功能&#xff0c;如画笔、直线、圆形、方形等形状绘制…

【海思3516DV500 | 开发环境】编译整个SDK全过程以及问题汇总

一、开发环境 上表是海思提供的Hi3519DV500 开发环境的各部分软件描述&#xff0c;实际用起来你就知道&#xff0c;可能有出入&#xff0c;尝试换Ubuntu 20.04折腾了好几天都不行&#xff0c;使用推荐的Ubuntu 18.04.2 64bit一个上午就行。 基本的硬件要求如下&#xff1a; ●…

Qt 解析多级XML

补充笔记&#xff1a;Qt 史上最详细 - “操作XML文件” - 笔记 一、如下图为XML文件 annotation为根节点&#xff0c; first第一节点&#xff0c;second第二节点&#xff0c;third第三节点。 二、实现解析xml文件&#xff0c;并将解析数据用QTreeView显示&#xff0c;实现代码…

AD9161调试问题

AD961同步信号SYNC无法保持高逻辑电 现象 配置ADF4351时钟芯片使其产生频率为1.6GHz的时钟为AD9161提供工作时钟&#xff0c;JESD的线速率配置为8Gbps&#xff0c;并配置AD9161的寄存器使其工作在2x内插模式以实现IQ信号的模数转换模式。同时根据AD9161芯片手册对ADF4351提供的…

NoSql数据库 Redis集群详解

目录 一、NoSql数据库简介 1.1 数据库主要分为两大类&#xff1a;关系型数据库与 NoSQL 数据库 1.2 为什么还要用 NoSQL 数据库呢&#xff1f; 1.3 RDBMS和NOSQL的特点及优缺点&#xff1a; 二 Remote Dictionary Server 简介&#xff08;redis&#xff09; 2.1 什么是redis …