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

news2024/9/19 22:08:50

作者:冰河
星球: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加密反向代理访问,有了进一步的了解,我是冰河,我们下期见~~

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

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

相关文章

事务方法中存在远程调用

1. 背景 在实现下单的方法中,首先通过远程调用查询了地址簿信息和服务信息等,然后将这些信息和前端传入的预约时间、服务项等信息封装到order实体类,然后调用Mybatis-Plus提供的ServiceImpl类的save方法,向数据库表中插入数据。 …

基于51单片机的220V交流数字电流表proteus仿真

地址:https://pan.baidu.com/s/1QmpPLvDTuW7QG7P-JCLPPg 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectron…

直流无刷电机霍尔线序自学习解释

直流无刷电机霍尔线序自学习 步骤详解 1. 初始连接 连接电机的三相线:A、B、C。连接霍尔传感器线:HA、HB、HC。 2. 输入电压组合与霍尔信号记录 电机的电压输入组合和霍尔信号记录是电机控制系统中至关重要的一部分,它们决定了电机的运转…

CODESYS标准化编程之输入输出映射

在介绍输入输出映射之前大家需要了解开关量防抖滤波功能块,相关链接如下: 开关量防抖滤波器(梯形图和SCL源代码)_开关量输入滤波程序-CSDN博客文章浏览阅读724次。本文介绍了开关量防抖滤波器的原理和应用,包括梯形图和SCL源代码的实现。通过防抖滤波功能块,可以有效滤除低…

2024年9月15日

30min 1.配置数据库得到数据表 2.连接数据库 英语六级 遇到了报错

YOLOv10改进系列,YOLOv10颈部网络SPPF替换为FocalModulation

摘要 焦点调制网络(简称FocalNets),其中自注意力(SA)完全由焦点调制模块取代,用于在视觉中建模标记交互。焦点调制包括三个组件:(i)焦点情境化,通过一堆深度卷积层实现,从短到长范围编码视觉上下文,(ii)门控聚合,选择性地将上下文聚集到每个查询标记的调制器中…

OpenCV和Tesseract OCR识别复杂验证码喽~~

目录 代码实现思路 流程: 主要流程: 整体代码 效果展示 原图 处理之后的图 总结 流程图 代码实现思路 使用 OpenCV 进行图像预处理,并通过 Tesseract OCR 来识别验证码中的字符。以下是其实现思路的详细讲解: 流程&…

人工免疫算法(AIS算法)求解实例---旅行商问题 (TSP)

目录 一、采用AIS求解 TSP二、 旅行商问题2.1 实际例子:求解 6 个城市的 TSP2.2 **求解该问题的代码**2.3 代码运行过程截屏2.4 代码运行结果截屏(后续和其他算法进行对比) 三、 如何修改代码?3.1 减少城市坐标,如下&a…

【AIGC cosplay】让大模型扮演求职者,我当hr来面试

【AIGC cosplay】让大模型扮演求职者,我当hr来面试 背景前摇(省流可不看): 工位附近有几位人力资源的老师,我发现他们这个职位可以看到好多别人的简历,还能跟好多人聊天,完事了跟同事悄悄吐槽…

<<编码>> 第 12 章 二进制加法器--8位加法器 示例电路

8 位加法器内部结构 info::操作说明 鼠标单击逻辑输入切换 0|1 状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlchs-ch12-08-8-bit-adder-internal.txt 8 位加法器 info::操作说…

操作系统——OS概述

操作系统——OS概述 操作系统概念 操作系统(Operation System,OS)是管理计算机硬件与软件资源的计算机程序。由此来看,OS是一种特殊的软件,它给用户和其他软件提供接口和环境,是计算机系统中最基本的系统…

20、Cereal

难度 高 目标 root 权限 2 Flag 使用VMware进行运行 信息收集 kali 192.168.152.56 靶机 192.168.152.65 第一次遇到这么快的端口扫描 可以看到存在ftp anoymous访问 同时还有大量的tcpwrapped状态,这个状态我还没见过 另外有个数据库和两个我网站服务&#xf…

4.TensorBoard的使用(一)--add_scalar()

Tensorboard的使用(一) TensorBoard 是一个可视化工具,用于监控和调试深度学习模型的训练过程。 1.使用add_scalar()进行简单绘图 首先需要导入Tensorboard包 from torch.utils.tensorboard import SummaryWriter创建一个SummaryWriter类的…

深入理解SpringBoot(一)----SpringBoot的启动流程分析

1、SpringApplication 对象实例化 SpringApplication 文件 public static ConfigurableApplicationContext run(Object[] sources, String[] args) {// 传递的source其实就是类Bootstrapreturn new SpringApplication(sources).run(args);// 实例化一个SpringApplication对象执…

CSS—4

1.定位 1.相对定位 2.绝对定位 3.固定定位 4.粘性定位 5.定位的特殊应用 2.布局-版心 3.布局-常用布局名词 4.布局-重置默认样式

【云原生监控】Prometheus监控系统

Prometheus监控系统 文章目录 Prometheus监控系统资源列表基础环境一、部署Prometheus服务1.1、解压1.2、配置systemctl启动1.3、监听端口1.4、访问Prometheus仪表盘 二、部署Node-Exporter2.1、解压2.2、配置systemctl启动2.3、监听端口2.4、访问node-exporter仪表盘 三、配置…

Java接口的艺术:探索接口特性与面向接口编程

在Java的世界里,接口(Interface)是一种强大的抽象机制,它定义了一组方法规范,但不实现这些方法。接口在Java编程中扮演着至关重要的角色,特别是在实现多态和面向接口编程(Interface-Oriented Pr…

Linux进程状态进程优先级

目录 一、操作系统的进程状态 1.1运行状态 1.2阻塞状态 1.3挂起 二、Linux下具体的状态 三、进程的优先级 3.1基本概念 3.2查看进程优先级的命令 3.3修改进程优先级的命令 3.4其他概念 3.5并发 一、操作系统的进程状态 1.1运行状态 当一个进程准备就绪&#xff0c…

MouseArea元素

常用信号 onClicked,鼠标点击onPressed,鼠标按下onReleased,鼠标释放 import QtQuickWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")Rectangle{id:rectwidth: 100height: 100color:"red"MouseA…

redis基本数据结构-sorted set

1. sorted set的简单介绍 参考链接:https://mp.weixin.qq.com/s/srkd73bS2n3mjIADLVg72A Redis的Sorted Set(有序集合)是一种数据结构,它是一个不重复的字符串集合,每个元素都有一个对应的分数(score&…