nginx--压缩https证书favicon.iconginx隐藏版本号 去掉nginxopenSSL
压缩功能
简介
Nginx⽀持对指定类型的⽂件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源。
Nginx对文件的压缩功能是依赖于模块ngx_http_gzip_module,官方文档:https://nginx.org/en/cdocs/http/ngx_http_gzip_module.html, 配置指令如下:
参数
gzip on | off; 启用或禁用gzip压缩,默认关闭
gzip_comp_level level; 压缩比由低到高从1到9,默认为1
gzip_disable "MSIE [1-6]\."; 禁⽤用IE6 gzip功能
gzip_min_length 1k; gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_http_version 1.0 | 1.1; 启用压缩功能时,协议的最小版本,默认HTTP/1.1
gzip_buffers number size; 指定Nginx服务需要向服务器申请的缓存空间的个数*大小,默认32 4k|16 8k;
gzip_types mime-type ...; 指明仅对哪些类型的资源执行压缩操作;默认为gzip_types text/html,不用显示指定,否则出错
text/plain
application/javascript
application/x-javascript
text/cssapplication/xml
text/javascript
application/x-httpd-php
image/jped
image/gif
image/png;gzip_vary on | off;如果启用压缩,是否在响应报文首部插⼊入“Vary: Accept-Encoding”
测试
gzip on;gzip_comp_level 3;gzip_min_length 1k;gzip_types text/plain application/javascript application/x-javascript text/cssapplication/xml text/javascript application/x-httpd-php image/jped image/gif image/pn;gzip_vary on;
https功能
简介
Web网站的登录页面都是使用https加密传输的,加密数据以保障数据的安全,HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等安全级别较高的服务都会采用HTTPS协议,HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
图解

实现过程
- 客户端发起HTTPS请求。当客户端(如浏览器)访问使用HTTPS协议的网站时,它会建立到服务器443端口的连接(HTTPS的默认端口),这通常是443端口。
- 服务端返回携带公钥的HTTPS证书。服务器在接收到客户端的请求后,会将其拥有的数字证书(包含公钥)传递给客户端,这个证书是由数字证书颁发机构(CA)签发的,并包含了证书颁发机构信息、公司信息和证书有效期等多种信息。
- 客户端验证证书是否合法。客户端在收到服务器的证书后,会对其进行验证,以确保证书的有效性和真实性,这包括检查证书的颁发机构、有效期以及证书中的域名是否与实际域名一致,如果证书不是由可信的CA机构颁发,或者存在其他问题,客户端会向用户显示一个警告。
- 客户端生成随机数并加密。如果证书验证成功,客户端会生成一个随机数,并使用服务器的公钥对这个随机数进行加密。
- 服务端解密随机数并用其加密响应内容。服务器在收到客户端加密的随机数后,使用其私钥来解密这个随机数,然后服务器使用这个随机数作为对称加密算法的密钥,对返回的数据内容进行加密,并发送给客户端。
- 客户端解密数据。客户端在收到服务器加密的数据后,使用之前生成的随机数(对称密钥)来解密数据。
- 双方愉快地传输所有数据。现在,双方都可以使用对称加密算法安全地传输数据,因为对称加密算法使用的密钥只有双方知道。
SSL参数配置
nginx 的https 功能基于模块ngx_http_ssl_module实现,因此如果是编译安装的nginx要使用参数
ngx_http_ssl_module开启ssl功能,但是作为nginx的核心功能,yum安装的nginx默认就是开启的,编译安装的nginx需要指定编译参数--with-http_ssl_module开启,官方文档: https://nginx.org/en/docs/http/ngx_http_ssl_module.html,配置参数如下
ssl on | off; 为指定的虚拟主机配置是否启用ssl功能,此功能在1.15.0废弃,使用listen [ssl]替代
ssl_certificate /path/to/file; 当前虚拟主机使用的公钥文件,⼀般是crt文件
ssl_certificate_key /path/to/file; 当前虚拟主机使用的私钥文件,一般是key文件
ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];支持ssl协议版本,早期为ssl,现在是TSL,默认为后三个
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
nginx证书签发
创建证书目录
cd /apps/nginx/
mkdir certs
cd certs
创建证书
openssl参数详解
version 用于查看版本信息
enc 用于加解密
ciphers 列出加密套件
genrsa 用于生成私钥
rsa RSA密钥管理(例如:从私钥中提取公钥)
rsa:4096 用于生成一个新的4096位的RSA密钥
nodes参数用于生成不包含私钥的证书sha256 哈希算法是SHA256
req 生成证书签名请求(CSR)
crl 证书吊销列表(CRL)管理
ca CA管理(例如对证书进行签名)
dgst 生成信息摘要
rsautl 用于完成RSA签名、验证、加密和解密功能
passwd 生成散列密码
rand 生成伪随机数
speed 用于测试加解密速度
s_client 通用的SSL/TLS客户端测试工具
X509 X.509证书管理
verify X.509证书验证
pkcs7 PKCS#7协议数据管理
自签名CA证书
[root@localhost certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt
Generating a 4096 bit RSA private key
.................................................................................................................................................................++
....................................................++
writing new private key to 'ca.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) [XX]:CN 国家
State or Province Name (full name) []:Shaanxi 省份
Locality Name (eg, city) [Default City]:Xianyang 城市名称
Organization Name (eg, company) [Default Company Ltd]:fxq 公司名称
Organizational Unit Name (eg, section) []:fxq 部门
Common Name (eg, your name or your server's hostname) []:fxq.ca 通用名称
Email Address []: 邮箱

自制key和csr文件
[root@localhost certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout www.fxq.com.key -out www.fxq.com.csr
Generating a 4096 bit RSA private key
..............................................................................................................................................................................................................................................................................................++
...........................................................................................++
writing new private key to 'www.fxq.com.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) [XX]:CN
State or Province Name (full name) []:Shaanxi
Locality Name (eg, city) [Default City]:Xianyang
Organization Name (eg, company) [Default Company Ltd]:fxq
Organizational Unit Name (eg, section) []:fxq.com
Common Name (eg, your name or your server's hostname) []:www.fxq.com
Email Address []:Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

签发证书
[root@localhost certs]# openssl x509 -req -days 365 -in www.fxq.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www.fxq.com.crt
Signature ok
subject=/C=CN/ST=Shaanxi/L=Xianyang/O=fxq/OU=fxq.com/CN=www.fxq.com/emailAddress=2825577216@qq.com
Getting CA Private Key
验证证书内容

nginx证书配置
server {listen 80;listen 443 ssl;ssl_certificate /apps/nginx/certs/www.fxq.com.crt;ssl_certificate_key /apps/nginx/certs/www.fxq.com.key;ssl_session_cache shared:sslcache:20m;ssl_session_timeout 10m;

https多域名复用
制作key和csr文件
[root@localhost certs]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout xxx.fxq.com.key -out xxx.fxq.com.csr
Generating a 4096 bit RSA private key
......................................................................................................++
.....................................................++
writing new private key to 'xxx.fxq.com.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) [XX]:CN
State or Province Name (full name) []:Shaanxi
Locality Name (eg, city) [Default City]:Xianyang
Organization Name (eg, company) [Default Company Ltd]:fxq
Organizational Unit Name (eg, section) []:fxq.com
Common Name (eg, your name or your server's hostname) []:XXX.fxq.com
Email Address []:2825577216@qq.comPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
签名证书
[root@localhost certs]# openssl x509 -req -days 365 -in xxx.fxq.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out xxx.fxq.com.crt
Signature ok
subject=/C=CN/ST=Shaanxi/L=Xianyang/O=fxq/OU=fxq.com/CN=XXX.fxq.com/emailAddress=2825577216@qq.com
Getting CA Private Key
验证证书内容

nginx证书配置
[root@localhost certs]# cat /apps/nginx/conf/conf.d/xxx.conf
server {listen 80;listen 443;ssl_certificate /apps/nginx/certs/xxx.fxq.com.crt;ssl_certificate_key /apps/nginx/certs/xxx.fxq.com.key;ssl_session_cache shared:sslcache:20m;ssl_session_timeout 10m;server_name xxx.fxq.com;location /zx {root /apps/nginx/html/;index index.html;} }

关于favicon.ico
favicon.ico 文件是浏览器收藏网址时显示的图标,当客户端用浏览器问页面时,浏览器会⾃自己主动发起请求获取页面的favicon.ico文件,但是当浏览器请求的favicon.ico文件不存在时,服务器会记录404日志,而且浏览器也会显示404报错。

location = /favicon.ico {root /data/nginx/html/pc;}

nginx隐藏版本号
http下:
server_tokens off;

![]()
去掉nginx
cd /usr/local/src/nginx-1.24.0/src/http/
vim ngx_http_header_filter_module.c

重新编译
nginx -Vcd /usr/local/src/nginx-1.24.0./configure 后面编译参数与nginx -V看到的保持一致make && make install

升级openSSL
OpenSSL是一个的开放源代码软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。

准备安装包在/usr/local/src/
cd /usr/local/src/
tar -zxvf openssl-1.1.1d.tar.gz
cd nginx-1.24.0
./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-http_perl_module --with-file-aio --add-module=/usr/local/src/echo-nginx-module-master --with-threads --with-openssl=/usr/local/src/openssl-1.1.1d
make && make install

相关文章:
nginx--压缩https证书favicon.iconginx隐藏版本号 去掉nginxopenSSL
压缩功能 简介 Nginx⽀持对指定类型的⽂件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源…...
通俗的理解网关的概念的用途(四):什么是网关设备?(网络层面)
任何一台Windows XP操作系统之后的个人电脑、Linux操作系统电脑都可以简单的设置,就可以成为一台具备“网关”性质的设备,因为它们都直接内置了其中的实现程序。MacOS有没有就不知道,因为没用过。 简单的理解,就是运行了具备第二…...
Spring JdbcTemplate实现自定义动态sql拼接功能
需求描述: sql 需要能满足支持动态拼接,包含 查询字段、查询表、关联表、查询条件、关联表的查询条件、排序、分组、去重等 实现步骤: 1,创建表及导入测试数据 CREATE TABLE YES_DEV.T11 (ID BINARY_BIGINT NOT NULL,NAME VARCH…...
第十一篇:操作系统新纪元:智能融合、量子跃迁与虚拟现实的交响曲
操作系统新纪元:智能融合、量子跃迁与虚拟现实的交响曲 1 引言 在数字化的浪潮中,操作系统如同一位智慧的舵手,引领着信息技术的航船穿越波涛汹涌的海洋。随着人工智能、物联网、量子计算等前沿技术的蓬勃发展,操作系统正站在一个…...
【大数据】学习笔记
文章目录 [toc]NAT配置IP配置SecureCRT配置PropertiesTerminal Java安装环境变量配置 Hadoop安装修改配置文件hadoop-env.shyarn-env.shslavescore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 环境变量配置 IP与主机名映射关系配置hostname配置映射关系配置 关闭防火墙…...
PHP 框架安全:ThinkPHP 序列 漏洞测试.
什么是 ThinkPHP 框架. ThinkPHP 是一个流行的国内 PHP 框架,它提供了一套完整的安全措施来帮助开发者构建安全可靠的 web 应用程序。ThinkPHP 本身不断更新和改进,以应对新的安全威胁和漏洞。 目录: 什么是 ThinkPHP 框架. ThinkPHP 框架…...
厂家自定义 Android Ant编译流程源码分析
0、Ant安装 Windows下安装Ant: ant 官网可下载 http://ant.apache.org ant 环境配置: 解压ant的包到本地目录。 在环境变量中设置ANT_HOME,值为你的安装目录。 把ANT_HOME/bin加到你系统环境的path。 Ubuntu下安装Ant: sudo apt…...
基于springboot+vue+Mysql的体质测试数据分析及可视化设计
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
uniapp的app端推送功能,不使用unipush
1:推送功能使用htmlPlus实现:地址HTML5 API Reference (html5plus.org) 效果图: 代码实现: <template><view class"content"><view class"text-area"><button click"createMsg&q…...
数据结构(四)————二叉树和堆(中)
制作不易,三连支持一下呗!!! 文章目录 前言一、堆的概念及结构二、堆的实现三.堆的应用 总结 前言 CSDN 这篇博客介绍了二叉树中的基本概念和存储结构,接下来我们将运用这些结构来实现二叉树 一、堆的概念及结构 1…...
随便写点东西
1 react的高阶组件 1.1 操纵组件的props、对组件的props进行增删; 1.2 复用组件逻辑 服用的组件逻辑,互不影响;比如高阶组件中复用了input框,输入内容是互不影响的; 1.3 可以通过配置装饰器来实现高阶组件(…...
Mac 报错 Zsh: command not found :brew
Mac 安装其他命令时报错 Zsh: command not found :brew终于找到一个能行的,还能够配置国内下载源,记录一下 执行 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"选择一个开始继续执行即可...
分析师常用商业分析模型
一、背景 在用户调研中,我们发现分析师对商业分析模型的使用还是比较频繁。本文主要对用户调研结果中的分析师常用商业分析模型以及一些业界经典的商业分析模型进行分析,并梳理出执行落地流程,以此来指导分析师工具设计分析功能的引导性。 …...
KMeans,KNN,Mean-shift算法的学习
1.KMeans算法是什么? 在没有标准标签的情况下,以空间的k个节点为中心进行聚类,对最靠近他们的对象进行归类。 2.KMeans公式: 2. 1.关键分为三个部分: 1.一开始会定义n个中心点,然后计算各数据点与中心点…...
web前端笔记8
8. Less的使用 Less (Leaner Style Sheets 的缩写) 是一门向后兼容的 CSS 扩展语言。Less 是一门CSS预处理语言,它扩充了CSS语言,增加了诸如变量、混合(mixin)、函数等功能,让CSS更易维护、方便制作主题、扩充。Less可以运行在Node.js或浏览器端。LESS由Alexis Sellier于…...
【漏洞复现】Apahce HTTPd 2.4.49(CVE-2021-41773)路径穿越漏洞
简介: Apache HTTP Server是一个开源、跨平台的Web服务器,它在全球范围内被广泛使用。2021年10月5日,Apache发布更新公告,修复了Apache HTTP Server2.4.49中的一个路径遍历和文件泄露漏洞(CVE-2021-41773)。…...
API低代码平台介绍2-最基本的数据查询功能
最基本的数据查询功能 本篇文章我们将介绍如何使用ADI平台定义一个基本的数据查询接口。由于是介绍平台具体功能的第一篇文章,里面会涉及比较多的概念介绍,了解了这些概念有助于您阅读后续的文章。 ADI平台的首页面如下: 1.菜单介绍 1.1 O…...
面试经典150题——盛最多水的容器
面试经典150题 day28 题目来源我的题解方法一 双指针 题目来源 力扣每日一题;题序:11 我的题解 方法一 双指针 使用两个指针left和right,初始分别指向最左侧和最右侧,然后每次移动矮的一侧。存水量Math.min(height[left],heigh…...
Box86源码解读记录
1. 背景说明 Github地址:https://github.com/ptitSeb/box86 官方推荐的视频教程:Box86/Box64视频教程网盘 2. 程序执行主体图 Box86版本: Box86 with Dynarec v0.3.4 主函数会执行一大堆的初始化工作,包括但不限于:BOX上下文 …...
Azure AKS日志查询KQL表达式
背景需求 Azure(Global) AKS集群中,需要查询部署服务的历史日志,例如:我部署了服务A,但服务A的上一个版本Pod已经被杀掉由于版本的更新迭代,而我在命令行中只能看到当前版本的pod日志ÿ…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
