当前位置: 首页 > news >正文

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进行加密,所以传输的数据都是加密后的数据。

 图解

 实现过程

  1. 客户端发起HTTPS请求。当客户端(如浏览器)访问使用HTTPS协议的网站时,它会建立到服务器443端口的连接(HTTPS的默认端口),这通常是443端口。
  2. 服务端返回携带公钥的HTTPS证书。服务器在接收到客户端的请求后,会将其拥有的数字证书(包含公钥)传递给客户端,这个证书是由数字证书颁发机构(CA)签发的,并包含了证书颁发机构信息、公司信息和证书有效期等多种信息。
  3. 客户端验证证书是否合法。客户端在收到服务器的证书后,会对其进行验证,以确保证书的有效性和真实性,这包括检查证书的颁发机构、有效期以及证书中的域名是否与实际域名一致,如果证书不是由可信的CA机构颁发,或者存在其他问题,客户端会向用户显示一个警告。
  4. 客户端生成随机数并加密。如果证书验证成功,客户端会生成一个随机数,并使用服务器的公钥对这个随机数进行加密。
  5. 服务端解密随机数并用其加密响应内容。服务器在收到客户端加密的随机数后,使用其私钥来解密这个随机数,然后服务器使用这个随机数作为对称加密算法的密钥,对返回的数据内容进行加密,并发送给客户端。
  6. 客户端解密数据。客户端在收到服务器加密的数据后,使用之前生成的随机数(对称密钥)来解密数据。
  7. 双方愉快地传输所有数据。现在,双方都可以使用对称加密算法安全地传输数据,因为对称加密算法使用的密钥只有双方知道。

 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.com      

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 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&#xff1a;推送功能使用htmlPlus实现&#xff1a;地址HTML5 API Reference (html5plus.org) 效果图&#xff1a; 代码实现&#xff1a; <template><view class"content"><view class"text-area"><button click"createMsg&q…...

数据结构(四)————二叉树和堆(中)

制作不易&#xff0c;三连支持一下呗&#xff01;&#xff01;&#xff01; 文章目录 前言一、堆的概念及结构二、堆的实现三.堆的应用 总结 前言 CSDN 这篇博客介绍了二叉树中的基本概念和存储结构&#xff0c;接下来我们将运用这些结构来实现二叉树 一、堆的概念及结构 1…...

随便写点东西

1 react的高阶组件 1.1 操纵组件的props、对组件的props进行增删&#xff1b; 1.2 复用组件逻辑 服用的组件逻辑&#xff0c;互不影响&#xff1b;比如高阶组件中复用了input框&#xff0c;输入内容是互不影响的&#xff1b; 1.3 可以通过配置装饰器来实现高阶组件&#xff08…...

Mac 报错 Zsh: command not found :brew

Mac 安装其他命令时报错 Zsh: command not found :brew终于找到一个能行的&#xff0c;还能够配置国内下载源&#xff0c;记录一下 执行 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"选择一个开始继续执行即可...

分析师常用商业分析模型

一、背景 在用户调研中&#xff0c;我们发现分析师对商业分析模型的使用还是比较频繁。本文主要对用户调研结果中的分析师常用商业分析模型以及一些业界经典的商业分析模型进行分析&#xff0c;并梳理出执行落地流程&#xff0c;以此来指导分析师工具设计分析功能的引导性。 …...

KMeans,KNN,Mean-shift算法的学习

1.KMeans算法是什么&#xff1f; 在没有标准标签的情况下&#xff0c;以空间的k个节点为中心进行聚类&#xff0c;对最靠近他们的对象进行归类。 2.KMeans公式&#xff1a; 2. 1.关键分为三个部分&#xff1a; 1.一开始会定义n个中心点&#xff0c;然后计算各数据点与中心点…...

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)路径穿越漏洞

简介&#xff1a; Apache HTTP Server是一个开源、跨平台的Web服务器&#xff0c;它在全球范围内被广泛使用。2021年10月5日&#xff0c;Apache发布更新公告&#xff0c;修复了Apache HTTP Server2.4.49中的一个路径遍历和文件泄露漏洞&#xff08;CVE-2021-41773&#xff09;。…...

API低代码平台介绍2-最基本的数据查询功能

最基本的数据查询功能 本篇文章我们将介绍如何使用ADI平台定义一个基本的数据查询接口。由于是介绍平台具体功能的第一篇文章&#xff0c;里面会涉及比较多的概念介绍&#xff0c;了解了这些概念有助于您阅读后续的文章。 ADI平台的首页面如下&#xff1a; 1.菜单介绍 1.1 O…...

面试经典150题——盛最多水的容器

面试经典150题 day28 题目来源我的题解方法一 双指针 题目来源 力扣每日一题&#xff1b;题序&#xff1a;11 我的题解 方法一 双指针 使用两个指针left和right&#xff0c;初始分别指向最左侧和最右侧&#xff0c;然后每次移动矮的一侧。存水量Math.min(height[left],heigh…...

Box86源码解读记录

1. 背景说明 Github地址&#xff1a;https://github.com/ptitSeb/box86 官方推荐的视频教程&#xff1a;Box86/Box64视频教程网盘 2. 程序执行主体图 Box86版本: Box86 with Dynarec v0.3.4 主函数会执行一大堆的初始化工作&#xff0c;包括但不限于&#xff1a;BOX上下文 …...

Azure AKS日志查询KQL表达式

背景需求 Azure&#xff08;Global&#xff09; AKS集群中&#xff0c;需要查询部署服务的历史日志&#xff0c;例如&#xff1a;我部署了服务A&#xff0c;但服务A的上一个版本Pod已经被杀掉由于版本的更新迭代&#xff0c;而我在命令行中只能看到当前版本的pod日志&#xff…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...