Nginx的https功能和防盗链

news2024/10/7 14:22:54

目录

一.HTTPS功能简介

二.https自签名证书

三.防盗链


一.HTTPS功能简介

Web网站的登录页面都是使用https加密传输的,加密数据以保障数据的安全,HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议,HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。

nginx 的https 功能基于模块ngx_http_ssl_module实现,因此如果是编译安装的nginx要使用参数ngx_http_ssl_module开启ssl功能,但是作为nginx的核心功能,yum安装的nginx默认就是开启的,编译安装的nginx需要指定编译参数--with-http_ssl_module开启

在Nginx中,HTTPS是通过SSL/TLS协议来实现加密和安全通信的功能。以下是Nginx中使用HTTPS的简要介绍:

  1. SSL/TLS支持:Nginx内置了对SSL/TLS协议的支持,可以用来加密客户端和服务器之间的通信,确保数据传输的隐私和安全。

  2. 证书配置:为了启用HTTPS,你需要配置SSL证书,包括公钥、私钥以及可能的中间证书。Nginx需要这些证书来进行加密通信。

  3. 监听HTTPS端口:与HTTP服务不同,HTTPS服务默认运行在443端口上。你需要配置Nginx监听443端口,并将HTTPS流量引导到相应的站点或应用程序。

  4. SSL配置:Nginx提供了一系列的SSL配置选项,用于控制加密算法、协议版本、会话缓存等参数。这些配置可以影响服务器与客户端之间的加密通信方式。

  5. HTTP到HTTPS的重定向:通常情况下,你可能希望将所有的HTTP请求重定向到HTTPS,以确保访问安全。Nginx可以通过配置来实现这种重定向。

  6. 性能优化:Nginx提供了一些优化选项,比如SSL会话缓存、OCSP Stapling等,用于提高HTTPS通信的性能和安全性。

总的来说,Nginx通过其灵活的配置和强大的性能,在实现HTTPS功能时提供了丰富的选项和功能。使用Nginx作为HTTPS服务器可以帮助你实现安全的加密通信,并保护网站和应用程序的数据安全。

https参数

ssl on | off;   
#为指定的虚拟主机配置是否启用ssl功能,此功能在1.15.0废弃,使用listen [ssl]替代
listen 443 ssl;

ssl_certificate /path/to/file;
#指向包含当前虚拟主机和CA的两个证书信息的文件,一般是crt文件

ssl_certificate_key /path/to/file;
#当前虚拟主机使用的私钥文件,一般是key文件

ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2]; 
#支持ssl协议版本,早期为ssl现在是TLS,默认为后三个

ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
#配置ssl缓存
 off: #关闭缓存
 none:  #通知客户端支持ssl session cache,但实际不支持
 builtin[:size]:#使用OpenSSL内建缓存,为每worker进程私有
 [shared:name:size]:#在各worker之间使用一个共享的缓存,需要定义一个缓存名称和缓存空间大小,一兆可以存储4000个会话信息,多个虚拟主机可以使用相同的缓存名称

ssl_session_timeout time;
#客户端连接可以复用ssl session cache中缓存的有效时长,默认5m

二.https自签名证书

1.修改配置文件

[root@localhost ~]# cd /etc/pki/tls/
[root@localhost tls]# ls
cert.pem  certs  misc  openssl.cnf  private
[root@localhost tls]# cd  certs/
[root@localhost certs]# pwd
/etc/pki/tls/certs
[root@localhost certs]# ls
ca-bundle.crt  ca-bundle.trust.crt  make-dummy-cert  Makefile  renew-dummy-cert
[root@localhost certs]# vim Makefile 
#找到第57行/usr/bin/openssl genrsa -aes128 $(KEYLEN) > $@
将这一行复制粘贴到下一行,复制的内容删除掉  -aes128  密码
将57行注释掉

2.使用make编译生成证书

3.将秘钥和证书复制到/opt下

[root@localhost certs]# cp  www.* /opt/
[root@localhost certs]# cd /opt
[root@localhost opt]# ls
nginx-1.18.0  nginx-1.18.0.tar.gz  rh  www.zxy.com.crt  www.zxy.com.key

4.编辑子配置文件

5.重新启动nginx

真机访问https://192.168.240.12

三.防盗链

防盗链基于客户端携带的referer实现,referer是记录打开一个页面之前记录是从哪个页面跳转过来的标记信息,如果别人只链接了自己网站图片或某个单独的资源,而不是打开了网站的整个页面,这就是盗链,referer就是之前的那个网站域名

none:#请求报文首部没有referer首部,比如用户直接在浏览器输入域名访问web网站,就没有referer信息
blocked:#请求报文有referer首部,但无有效值,比如为空 
server_names:#referer首部中包含本主机名及即nginx 监听的server_name
arbitrary_string:#自定义指定字符串,但可使用*作通配符。
示例: *.kgc.org www.kgc.*  www.baidu.com
egular expression:#被指定的正则表达式模式匹配到的字符串,要使用~开头
例如:~.*\.kgc\.com

实现防盗链:

1.客户机切换到主站点下,编辑配置文件并重启nginx服务

yum安装主站点地址:cd  /usr/share/nginx/html

[root@localhost ~]# cd /usr/share/nginx/html/
[root@localhost html]# ls
404.html  50x.html  en-US  icons  img  index.html  nginx-logo.png  pc.conf  poweredby.png
[root@localhost html]# vim  index.html

<html>
<body>
<h1>this is zhumulangmafeng  </h1>
<img src="http://www.zmlmf.com/b.jpg"/>
</body>
</html>
[root@localhost html]# systemctl restart nginx

2.服务器上切换到子配置文件目录,编辑子配置文件,并重启nginx服务

[root@localhost conf.d]# cd /apps/nginx/conf.d/
[root@localhost conf.d]# 
[root@localhost conf.d]# cd /apps/nginx/conf.d/
[root@localhost conf.d]# vim zmlmf.conf

server  {
  listen  80;
  server_name  www.zmlmf.com;
  root  /data/nginx/zmlmf;
}

3.切换到子配置文件中的站点,拖入图片并改名为b.jpg

[root@localhost conf.d]# cd /data/nginx/zmlmf
[root@localhost zmlmf]# ls
b.jpg  

4.验证真机是否能够通过客户机查看到图片b.jpg

访问192.168.240.11

5.设置防盗链

server  {
  listen  80;
  server_name  www.zmlmf.com;
  root  /data/nginx/zmlmf;
  location  ~* \.(jpg|gif|swf|jpeg|bmp)$ {
  valid_referers  none  blocked  *.zmlmf.com  zmlmf.com;
  if ( $invalid_referer ) {
  #rewrite  ^/ http://192.168.240.12/error.png;
  return   403;
}
}
}

6.重启nginx服务后,真机再次访问192.16.240.11,出现403报错

7.给防盗链添加访问失败图片

开启子配置文件中  #rewrite  ^/ http://192.168.240.12/error.png;

关闭  #return  403

在服务器主站点拖入图片并改名为error.png

重新启动nginx服务

8.真机访问192.168.240.11

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

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

相关文章

clickHouse实现表自增ID的代码及相关逻辑

一、介绍 clickHourse表自增ID主要时两种方式&#xff1a; insert数据时&#xff0c;手动维护一个全局ID给表设置uuid字段&#xff0c;使用 generateUUIDv4()函数赋予默认值。 这里的话推荐手动维护一个全局的自增ID&#xff0c;不推荐使用UUID的方式&#xff0c;主要原因有…

java —— 线程(一)

一、进程与线程 一个进程可以包含一个以上的线程&#xff0c;CPU 时间片切换的基本单位是线程。 二、创建线程 &#xff08;一&#xff09;继承 Thread 类 public class Task extends Thread{Override //重写run方法public void run(){System.out.pr…

Nginx部署多web进程

1、nginx介绍 Nginx是一个高性能的、开源的、跨平台的Web服务器和反向代理服务器。它是由俄罗斯的程序员Igor Sysoev开发的&#xff0c;并于2004年首次公开发布。 Nginx的特点包括&#xff1a; 高性能&#xff1a;Nginx使用事件驱动的架构&#xff0c;能够处理大量的并发连接…

HarmonyOS鸿蒙应用开发——ArkUI组件封装最佳实践

文章目录 背景与案例描述静态注册属性-封装UI组件动态注册属性-封装UI组件总结 背景与案例描述 在应用开发中&#xff0c;对一些频繁使用的业务UI组件常常会进行一层封装&#xff0c;提取到公共基础库中实现组件的复用&#xff0c;避免类似的逻辑重复编写&#xff0c;减少代码…

【前端技术】 ES6 介绍及常用语法说明

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

LabVIEW缝缺陷图像标注库

LabVIEW缝缺陷图像标注库 开发了一个基于LabVIEW平台构建的船舶焊缝缺陷图像标注库。该库旨在通过高效和简洁的方式处理和标注船舶焊缝缺陷图像&#xff0c;提高缺陷识别的准确性和效率&#xff0c;进而保障船舶的结构安全。 项目背景 在船舶制造过程中&#xff0c;焊接质量…

递归【1】(全排列andN皇后)(排列型回溯)

全排列 分治与递归 递归是实现分治的一种方法 思想思路 题目&#xff1a; 全排列i 我这样直接输出会多输出一个空行&#xff08;最后一个\n&#xff09; #include<stdio.h>using namespace std; const int maxn10; int an[maxn]; int n; bool hash[maxn]{0}; int c0…

STM32-15-DMA

STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 STM32-12-OLED模块 STM32-13-MPU STM32-14-FSMC_LCD 文章目录 STM…

【Java面试】十七、并发篇(上)

文章目录 1、synchronized关键字的底层原理&#xff1a;Monitor2、synchronized相关2.1 为什么说synchronized是重量级锁2.2 synchronized锁升级之偏向锁2.3 synchronized锁升级之轻量级锁 3、Java内存模型JMM4、CAS4.1 CAS流程4.2 CAS底层实现 5、volatile关键字的理解5.1 可见…

区块链(Blockchain)调查研究(一)

文章目录 1. 区块链是什么&#xff1f;2. 区块链分类和特点3. 区块链核心关键技术3.1 共识机制3.2 密码学技术3.4 分布式存储3.5 智能合约 4. 区块链未来发展趋势5. 区块链能做什么、不能做什么&#xff1f;5.1 第一部分5.2 第二部分5.3 第三部分&#xff08;结论&#xff09; …

八爪鱼现金流-019-个人对接支付,个人网站支付解决方案

背景&#xff1a; 随着用户量不断增加&#xff0c;服务器成本越来越大。想着实现会员制回点服务器成本。 业务场景分析&#xff1a; 用户在站点上付款 -----> 我监听到付款金额 -----> 给用户开通会员 调研&#xff1a; 支付宝和微信官方支付接口&#xff1a;基本都需…

MOS管十大品牌

MOS管十大品牌-场效应管品牌排行-MOS管品牌-Maigoo品牌榜

统计学研硕大数据统计练手11

统计学论文练手作业 题目AI绘图仅供欣赏 题目 2024年的《政府工作报告》中提出“深化大数据、人工智能等研发应用,开展“人工智能+”行动,打造具有国际竞争力的数字产业集群”,请同学们结合自己工作的所在行业或领域谈一谈大数据技术在人工智能时代下的应用现状、存在的问…

VSC++: 民意调查比例法

void 民意调查比例法() {//缘由https://bbs.csdn.net/topics/396521294?page1#post-411408461从题目描述看&#xff1a;902/3~300.7&#xff0c;1498/5~299.6也就是大约求2个数的公约数&#xff0c;并使得这个公约数尽量求出最小误差&#xff1f;且商小于某值。int a 0, aa …

JS(JavaScript)的引用方式介绍与代码演示

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Mamba v2诞生:3 SMA与Mamba-2

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

从品牌的角度看老字号五芳斋如何“粽”出年轻味?

端午划着龙舟的浆又来到了我们身边&#xff0c;咸鸭蛋和粽子已经裹上精美的包装在货架上等待着它们的“有缘人”&#xff0c;其实长期以来&#xff0c;说起吃粽子除了“甜咸口”的辩论赛&#xff0c;貌似在产品上却并没有太多的创新&#xff0c;但近几年随着消费市场的不断创新…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 6月9日,星期日

每天一分钟&#xff0c;知晓天下事&#xff01; 2024年6月9日 星期日 农历五月初四 1、 人社部&#xff1a;个人养老金开户人数已超6000万&#xff0c;其中31岁至40岁的中高收入人群是开户、缴费和购买产品的主力军。 2、 医保局刊文&#xff1a;研究显示集采仿制药替代原研药…

网关API(SpringCloudGateway)如何自定义Filter

1.前言 SpringCloud 虽然给我们提供了很多过滤器&#xff0c;但是这些过滤器功能都是固定的&#xff0c;无法满足用户的各式各样的需求。因此SpringCloud提供了过滤器的扩展功能自定过滤器。 开发者可以根据自己的业务需求自定义过滤器。 2. 自定义 GatewayFilter(局部过滤器)…

LangChain4j实战

基础 LangChain4j模型适配: Provider Native Image Sync Completion Streaming Completion Embedding Image Generation Scoring Function Calling OpenAI ✅ ✅ ✅ ✅ ✅ ✅ Azure OpenAI ✅ ✅ ✅ ✅ ✅ Hugging Face ✅ ✅ Amazon Bedrock ✅ ✅…