《Nginx核心技术》第17章:使用自签CA配置HTTPS加密反向代理访问

作者:冰河
星球:http://m6z.cn/6aeFbs
博客:https://binghe.gitcode.host
文章汇总:https://binghe.gitcode.host/md/all/all.html
星球项目地址:https://binghe.gitcode.host/md/zsxq/introduce.html

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★★☆☆☆
  • 本章重点:用最简短的篇幅介绍Nginx最核心的知识,掌握使用自签CA配置HTTPS加密反向代理访问,并能够灵活运用到实际项目中,维护高可用系统。

大家好,我是冰河~~

今天给大家介绍《Nginx核心技术》的第17章:使用自签CA配置HTTPS加密反向代理访问,多一句没有,少一句不行,用最简短的篇幅讲述Nginx最核心的知识,好了,开始今天的内容。

17.1 本章概述

随着互联网的发展,很多公司和个人越来越重视网络的安全性,越来越多的公司采用HTTPS协议来代替了HTTP协议。为何说HTTPS协议比HTTP协议安全呢?小伙伴们自行百度吧!我就不说了。今天,我们就一起来聊聊如何使用自签CA配置Nginx的HTTPS加密反向代理。咳咳,小伙伴们快上车。

如果这篇文章对你有所帮助,请文末留言,点个赞,给个在看和转发,大家的支持是我持续创作的最大动力!

17.2 Nginx实现HTTPS

出于安全访问考虑,采用的CA是本机Openssl自签名生成的,因此无法通过互联网工信Root CA验证,所以会出现该网站不受信任或安全证书无效的提示,直接跳过,直接访问即可!

17.3 HTTPS的原理和访问过程

17.3.1 服务器必要条件

  • 一个服务器私钥 KEY文件
  • 一张与服务器域名匹配的CA证书(公钥,根据私钥key生成)

17.3.2 访问过程

(1)客户端浏览器通过https协议访问服务器的443端口,并获得服务器的证书(公钥);客户端浏览器这时候会去找一些互联网可信的RootCA(权威证书颁发机构)验证当前获取到的证书是否合法有效,PS:这些RootCA是随操作系统一起预设安装在了系统里面的;

(2)如果RootCA验证通过,表示该证书是可信的,并且若证书中标注的服务器名称与当前访问的服务器URL地址一致,就会直接使用该证书中包含的公钥解密服务器通过自己的KEY(私钥)加密后传输过来的网页内容,从而正常显示页面内容;

(3)如果RootCA验证不通过,说明该证书是未获得合法的RootCA签名和授权,因此也就无法证明当前所访问的服务器的权威性,客户端浏览器这时候就会显示一个警告,提示用户当前访问的服务器身份无法得到验证,询问用户是否继续浏览!(通常自签名的CA证书就是这种情况)

这里需要注意,验证CA的有效性,只是证明当前服务器的身份是否合法有效,是否具有公信力以及身份唯一性,防止其他人仿冒该网站;但并不会影响到网页的加密功能,尽管CA证书无法得到权威证明,但是它所包含的公钥和服务器上用于加密页面的私钥依然是匹配的一对,所以服务器用自己的私钥加密的网页内容,客户端浏览器依然是可以用这张证书来解密,正常显示网页内容,所以当用户点击“继续浏览此网站(不推荐)”时,网页就可以打开了;

17.3.3 自签名CA证书生成

1.用Openssl随机生成服务器密钥,和证书申请文件CSR

2.自己给自己签发证书

在服务器命令行输入如下命令办法证书。

#opensslx509 -req -days 3650 -in moonfly.net.csr -signkeymoonfly.net.key -outmoonfly.net.crt 
  • -days 3650 证书的有效期,自己给自己颁发证书,想有多久有效期,就弄多久,我一下弄了10年的有效期;
  • -inmoonfly.net.csr指定CSR文件
  • -signkeymoonfly.net.key指定服务器的私钥key文件
  • -outmoonfly.net.crt 设置生成好的证书文件名

一条命令,自己给自己压钢印的身份证 moonfly.net.crt 就诞生了!

注:其实严格来讲,这里生成的只是一张RootCA,并不是严格意义上的服务器证书ServerCA,真正的ServerCA是需要利用这张RootCA再给服务器签署办法出来的证书才算;不过我们这里只讲如何实现网页的SSL加密,所以就直接使用RootCA了,也是能正常实现加密功能的!

17.4 NGINX配置启用HTTPS并配置加密反向代理

配置文件修改完毕后,用nginx -t 测试下配置无误,就reload一下nginx服务,检查443端口是否在监听:

配置完毕,https已经在工作了,现在可以通过https访问网站了

好了,相信各位小伙伴们对使用自签CA配置HTTPS加密反向代理访问,有了进一步的了解,我是冰河,我们下期见~~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3.Java高级编程实用类介绍(一)

三、Java高级编程实用类介绍(一) 文章目录 三、Java高级编程实用类介绍(一)一、枚举类型二、包装类三、Math 一、枚举类型 使用enum进行定义 public enum 枚举名字{值1,值2.... }二、包装类 每个基本类型在java.lang包中都有一个相应的包装类 /** new包装类(字符…

华硕产品资料的查询方法

华硕网站有些奇怪,比如我要查询x99-pro这款已经停售的主板的资料,在它的首页搜索,搜索结果为空: 然后在服务支持和下载中心,同样搜不到。 经高人指点,用下面的方法,可以搜到: https…

C++ char*和char[] 可能指向的内存区域详解(附实验)

C char* 指向的内存区域详解 写在前面c内存结构简介指针常量和常量指针简介情况一:char* 指向栈区内容情况二:char* 指向堆区内容情况三:char* 指向常量区内容情况四:char* 指向静态区内容情况五:char* 指向全局区内容…

mysql 8.0 时间维度表生成(可运行)

文章目录 mysql 8.0 时间维度表生成实例时间维度表的作用时间维度表生成技术细节使用时间维度表的好处 mysql 8.0 时间维度表生成实例 时间维度表的作用 dim_times(时间维度表)在数据仓库(Data Warehouse)中的作用至关重要。作为…

Vite + Electron 时,Electron 渲染空白,静态资源加载错误等问题解决

问题 如果在 electron 里直接引入 vite 打包后的东西,那么有些资源是请求不到的 这是我的引入方式 根据报错,我们来到 vite 打包后的路径看一看 ,修改一下 dist 里的文件路径试了一试 修改后的样子,发现是可以的了 原因分析 …

Java-idea小锤子图标

这一版的idea小锤子图标其实就在这里 点进去就找到了~

航空航司reese84逆向

reese84逆向 Reese84 是一种用于保护网站防止自动化爬虫抓取的防护机制,尤其是在航空公司网站等需要严格保护数据的平台上广泛使用。这种机制通过复杂的指纹识别和行为分析技术来检测和阻止非人类的互动。例如,Reese84 可以通过分析访问者的浏览器指纹、…

java技术栈介绍

Java技术栈是一个庞大而丰富的生态系统,它包含了从基础语言特性到高级框架、库和工具的整个集合。这个技术栈为开发者提供了构建各种类型应用(包括企业级应用、Web应用、移动应用、大数据应用等)所需的全部组件。以下是对Java技术栈的一个更详…

Java 技巧 如何在IDEA2024 中快速打出System.out.println();

1.基本用法 键入sout回车 回车后变成: 2.打印变量 快速打印变量,以打印变量名为set为例,set.sout回车, 回车后变成

YOLOv8 人体姿态估计动作识别关键点检测(代码+教程)

YOLOv8 人体姿态判断 项目介绍 YOLOv8 人体姿态判断 是一个基于最新YOLOv8模型的深度学习项目,旨在识别和分析人体姿态。该项目利用先进的计算机视觉技术和深度学习框架,通过摄像头捕捉实时图像或处理存储图像,识别人体的关键点&#xff0c…

ubuntu服务器版NVIDIA驱动失效解决方案

ubuntu服务器版NVIDIA驱动失效解决方案 1. 问题描述2. 解决方法--卸载并重新安装最新版显卡驱动cudacudnn2.1 卸载显卡驱动2.2 重新安装最新版显卡驱动cudacudnn2.2.1 显卡驱动2.2.2 cuda2.2.3 cuda安装cudnn 1. 问题描述 在终端输入nvidia-smi,输出如下&#xff1…

安全工具 | 使用Burp Suite的10个小tips

Burp Suite 应用程序中有用功能的集合 img Burp Suite 是一款出色的分析工具,用于测试 Web 应用程序和系统的安全漏洞。它有很多很棒的功能可以在渗透测试中使用。您使用它的次数越多,您就越发现它的便利功能。 本文内容是我在测试期间学到并经常的主要…

oracle 使用 PL/SQL Developer创建表并插入单条、多条数据

第一步:使用工具创建表(前提是库已经创建好了):在当前用户下找到Tables 然后点击并右键,点击新建 写上表名,写上表名的注释 第二步添加字段:点击列,然后分别写上你自己需要的字段及名…

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef

在线查看 Android 系统源代码 AOSPXRef and AndroidXRef 1. AOSPXRef1.1. http://aospxref.com/android-14.0.0_r2/1.2. build/envsetup.sh 2. AndroidXRef2.1. http://androidxref.com/9.0.0_r3/2.2. build/envsetup.sh 3. HELLO AndroidReferences 1. AOSPXRef http://aospx…

QT项目添加资源文件

效果 1.先将图片等资源文件复制到QT项目源码目录中。 2.再添加资源文件 打开资源文件编辑 全选文件 代码

Leetcode—740. 删除并获得点数【中等】(unordered_map+set+sort)

2024每日刷题&#xff08;162&#xff09; Leetcode—740. 删除并获得点数 算法思想 实现代码 class Solution { public:int deleteAndEarn(vector<int>& nums) {unordered_map<int, int> freq;set<int> st;sort(nums.begin(), nums.end());int n num…

MySQL —— 视图

概念 视图是一张虚拟的表&#xff0c;它是基于一个或多个基本表或其他视图的查询结果集。 视图本身不存储数据&#xff0c;而是通过执行查询来动态生成数据&#xff0c;用户可以像操作普通表一样使用视图来进行查询更新与管理等操作。 视图本身也不占用物理存储空间&#xf…

【python因果推断库16】使用 PyMC 模型进行回归拐点设计

目录 例子 1 - 连续分段线性函数 import arviz as az import matplotlib.pyplot as plt import numpy as np import pandas as pdimport causalpy as cp %load_ext autoreload %autoreload 2 %config InlineBackend.figure_format retina seed 42 rng np.random.default_rn…

Android中的冷启动,热启动和温启动

在App启动方式中分为三种&#xff1a;冷启动&#xff08;cold start&#xff09;、热启动&#xff08;hot start&#xff09;、温启动&#xff08;warm start&#xff09; 冷启动&#xff1a; 系统不存在App进程&#xff08;App首次启动或者App被完全杀死&#xff09;时启动A…

AcWing算法基础课-789数的范围-Java题解

大家好&#xff0c;我是何未来&#xff0c;本篇文章给大家讲解《AcWing算法基础课》789 题——数的范围。本文详细解析了一个基于二分查找的算法题&#xff0c;题目要求在有序数组中查找特定元素的首次和最后一次出现的位置。通过使用两个二分查找函数&#xff0c;程序能够高效…