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

Nginx快速入门:实现企业安全防护|nginx部署https,ssl证书(七)

0. 引言

之前我们讲到nginx的一大核心作用就是实现企业安全防护,而实现安全防护的原理就是通过部署https证书,以此实现参数加密访问,从而加强企业网站的安全能力。

nginx作为各类服务的统一入口,只需要在入口处部署一个证书,就能够实现各类后台服务的统一https加密

1. https协议简介

1.1 为什么要用https?

首先我们要知道http有什么问题,为什么要用https请求,http协议使用明文传输参数,这就导致参数传递过程中有被第三方截取到数据信息的风险(https用参数加密来解决),同时传输过程数据被截取,还可能被篡改(https用签名来保证数据完整性),下游也不知道收到的数据是不是原始数据,也就是不知道数据到底是谁发送的,有没有被改过(https用密钥对、非对称验签解决)。

基于以上的情况,在企业生产系统中,我们都建议使用https协议进行接口请求、数据传输

1.2 什么是ssl证书?

SSL证书是一种数字证书,它用于在互联网上提供安全的通信方式。它类似于现实生活中的各种证件,如驾驶证、护照和营业执照的电子副本。SSL证书的主要作用是在客户端浏览器和Web服务器之间建立一条加密的安全通道,以保护数据传输的安全。

SSL证书的申请和颁发过程由受信任的数字证书颁发机构(CA)负责,比如国内的阿里云。在颁发证书之前,CA会验证申请者的身份以及其对所申请域名的控制权。验证通过后,CA会签发SSL证书,证书包含内容:

  • 密钥对
  • 颁发者和使用者的信息
  • 证书的相关信息

1.3 https协议和ssl证书是什么关系

SSL(Secure Sockets Layer)和HTTPS(HTTP Secure)之间的关系是紧密相连的。HTTPS是一种安全的网络通信协议,它是在HTTP(Hypertext Transfer Protocol)协议的基础上,通过SSL协议提供了数据加密、数据完整性验证和服务器身份验证的功能。因此,可以说HTTPS是HTTP协议的安全版本,而SSL是实现HTTPS安全性的关键技术。

具体来说,HTTPS协议在传输数据时会使用SSL加密技术,确保数据在传输过程中不被窃听和篡改。此外,SSL证书用于验证服务器的身份,这有助于防止中间人攻击和欺骗性网站。用户可以通过查看浏览器地址栏中的绿色锁图标或HTTPS字样来确认当前连接是安全的。

所以我们是通过部署ssl证书,来实现https协议的。

2. 证书的颁布

2.1 第三方颁布

比如使用的阿里云的域名,就可以在阿里云申请证书,免费的是一年有效期,一年后要进行重新申请和部署,不然证书过期,就会影响接口调用,原本支持的https协议就会失效了。也有付费的,一般付费的可以使用好几年。

2.2 自签证书

这里我为了给大家演示,就使用自签证书,所谓自签证书就是自己利用第三方工具生成的证书,一样具备加密的功能,只是没有第三方的认证

签发证书步骤:
1、安装openssl工具,使用该工具签发证书

# 安装
yum install openssl -y

2、生成密钥对

# 创建并进入密钥目录,后续证书就生成在该目录下
mkdir /etc/nginx/pki
cd /etc/nginx/pki
# 指定权限
umask 077;
# 生成RSA私钥并指定长度
openssl genrsa -out private.pem 4096
# 根据私钥生成公钥
openssl rsa -in private.pem -pubout -out public.pem

在这里插入图片描述
执行成功后,会发现目录下多出了一个私钥和公钥文件
在这里插入图片描述

3、生成自签证书

# openssl req -new -x509 -key 私钥 -out 证书名 -days 证书有效期
openssl req -new -x509 -key private.pem -out ca.crt -days 36500
# 依次输入国家、省份、城市、公司、部门、域名、邮箱地址

在这里插入图片描述

4、查看目录下多出一个证书文件ca.crt
在这里插入图片描述

3. nginx部署ssl证书

官网文档:https://nginx.org/en/docs/http/configuring_https_servers.html

1、修改配置,指定证书路径

server {listen 443 ssl;server_name www.wu.com;root /html/wu;index index.html;# 指定证书和私钥ssl_certificate /etc/nginx/pki/ca.crt; # 指定证书路径,如果是第三方颁发的也会有这个文件,复制到指定目录下就行ssl_certificate_key /etc/nginx/pki/private.pem; # 私钥文件location / {proxy_pass: http://192.168.244.41:8083;proxy_set_header HOST $host;proxy_http_version 1.1;} }

2、同时配置http请求跳转https

server {listen 80;server_name www.wu.com;root /html/wu;index index.html;location / {rewrite (.*) https://192.168.244.41:8083/$uri redirect;   # 这里ip端口可以替换为你的域名}}

3、访问测试:
首先我们直接通过https访问ip, 可以看到可以正常访问到,但是证书显示是无效的
在这里插入图片描述
这是因为证书是我们自己颁发的,并不是认证的第三方的,所以无效,但是可以看到证书本身的内容已经正常显示,我们在本地做一些测试时可以采用自颁发证书的形式,生产上还是要用正规的第三方颁发。
在这里插入图片描述

4. 总结

如上我们就完成了nginx ssl证书的部署,可以看到单纯看证书的部署并不难,关键大家要体会到证书的含义和作用

相关文章:

Nginx快速入门:实现企业安全防护|nginx部署https,ssl证书(七)

0. 引言 之前我们讲到nginx的一大核心作用就是实现企业安全防护,而实现安全防护的原理就是通过部署https证书,以此实现参数加密访问,从而加强企业网站的安全能力。 nginx作为各类服务的统一入口,只需要在入口处部署一个证书&…...

将Go语言开发的Web程序部署到K8S

搭建K8S基础环境 如果已经有K8S环境的同学可以跳过,如果没有,推荐你看看我的《Ubuntu22加Minikue搭建K8S环境》,课程目录如下: Ubuntu22安装Vscode 下载:https://code.visualstudio.com/Download 安装命令&#…...

Python发送数据到Unity实现

Unity设置: 打开Unity项目。创建一个空的GameObject,并附加一个新的脚本TCPReceiver using System.Net; using System.Net.Sockets; using System.Text; using UnityEngine; using System.Threading;public class MyListener : MonoBehaviour {Thread thread;pub…...

Unity 渲染顺序受哪些影响(相机depth、SortingLayer、Render Queue、透明)

目录 相机深度(Camera Depth) Clear Flags 多相机渲染不同部分 SortingLayer 先后顺序 Render Queue Render Queue的作用 Render Queue的分类 GeometryLast(值为2500) 渲染顺序总结 相机深度(Camera Depth&am…...

【论文笔记】Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks

论文地址:Run, Dont Walk: Chasing Higher FLOPS for Faster Neural Networks 代码地址:https://github.com/jierunchen/fasternet 该论文主要提出了PConv,通过优化FLOPS提出了快速推理模型FasterNet。 在设计神经网络结构的时候&#xff…...

python常用函数汇总

python常用函数汇总 对准蓝字按下左键可以跳转哦 类型函数数值相关函数abs() divmod() max() min() pow() round() sum()类型转换函数ascii() bin() hex() oct() bool() bytearray() bytes() chr() complex() float() int() 迭代和循环函数iter() next() e…...

阶段十-物业项目

可能遇到的错误&#xff1a; 解决jdk17javax.xml.bind.DatatypeConverter错误 <!--解决jdk17javax.xml.bind.DatatypeConverter错误--><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>…...

使用 Jekyll 构建你的网站 - 初入门

文章目录 一、Jekyll介绍二、Jekyll安装和启动2.1 配置Ruby环境1&#xff09;Windows2&#xff09;macOS 2.2 安装 Jekyll2.3 构建Jekyll项目2.4 启动 Jekyll 服务 三、Jekyll常用命令四、目录结构4.1 主要目录4.2 其他的约定目录 五、使用GitLink构建Jekyll博客5.1 生成Jekyll…...

【数据库】postgressql设置数据库执行超时时间

在这篇文章中&#xff0c;我们将深入探讨PostgreSQL数据库中的一个关键设置&#xff1a;SET statement_timeout。这个设置对于管理数据库性能和优化查询执行时间非常重要。让我们一起来了解它的工作原理以及如何有效地使用它。 什么是statement_timeout&#xff1f; statemen…...

SQL语言之DDL

目录结构 SQL语言之DDLDDL操作数据库查询数据库创建数据库删除数据库使用某个数据库案例 DDL操作表创建表查看表结构查询表修改表添加字段删除字段修改字段的类型修改字段名和字段类型 修改表名删除表案例 SQL语言之DDL ​ DDL&#xff1a;数据定义语言&#xff0c;用来定义数…...

hive高级查询(2)

-- 分组查询 SELECT sex,SUM(mark) sum_mark FROM score GROUP BY sex HAVING sum_mark > 555; SELECT sex,sum_mark FROM( SELECT sex,SUM(mark) sum_mark FROM score GROUP BY sex ) t WHERE sum_mark > 555; SELECT AVG(gid),SUM(gid)/COUNT(gid) FROM …...

golang的jwt学习笔记

文章目录 初始化项目加密一步一步编写程序另一个参数--加密方式关于StandardClaims 解密解析出来的怎么用关于`MapClaims`上面使用结构体的全代码实战项目关于验证这个项目的前端初始化项目 自然第一步是暗转jwt-go的依赖啦 #go get github.com/golang-jwt/jwt/v5 go get githu…...

第十五节TypeScript 接口

1、简介 接口是一系列抽象方法的声明&#xff0c;是一些方法特征的集合&#xff0c;这些方法都应该是抽象的&#xff0c;需要有由具体的类去实现&#xff0c;然后第三方就可以通过这组抽象方法调用&#xff0c;让具体的类执行具体的方法。 2、接口的定义 interface interface_…...

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口&#xff1f;&#xff01;&#x1f60e; 前言&#x1f64c;【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口&#xff1f;&#xff01;查看自己的配置文件&#xff1a;最终成功访问如图所示&#xff1a; 总结撒花…...

14.bash shell中的for/while/until循环

文章目录 shell循环语句for命令**读取列表中的值****读取列表中的复杂值****从变量读取列表**迭代数组**从命令读取值****用通配符读取目录**C语言风格的shell for循环 shell循环while命令shell 循环的until命令shell循环跳出的break/continue命令break命令continue命令trick 欢…...

RPC(6):RMI实现RPC

1RMI简介 RMI(Remote Method Invocation) 远程方法调用。 RMI是从JDK1.2推出的功能&#xff0c;它可以实现在一个Java应用中可以像调用本地方法一样调用另一个服务器中Java应用&#xff08;JVM&#xff09;中的内容。 RMI 是Java语言的远程调用&#xff0c;无法实现跨语言。…...

strlen和sizeof的初步理解

大家好我是Beilef&#xff0c;一个美好的下我接触到编程并且逐渐喜欢。我虽然不是科班出身但是我会更加努力地去学&#xff0c;有啥不对的地方请斧正 文章目录 目录 文章目录 前言 想必大家对sizeof肯定很了解&#xff0c;那对strlen又了解多少。其实这个问题应该让不少人困扰。…...

纯CSS的华为充电动画,它来了

&#x1f4e2; 鸿蒙专栏&#xff1a;想学鸿蒙的&#xff0c;冲 &#x1f4e2; C语言专栏&#xff1a;想学C语言的&#xff0c;冲 &#x1f4e2; VUE专栏&#xff1a;想学VUE的&#xff0c;冲这里 &#x1f4e2; Krpano专栏&#xff1a;想学Krpano的&#xff0c;冲 &#x1f514…...

在架构设计中,前后端分离有什么好处?

前后端分离是一种架构设计模式&#xff0c;将前端和后端的开发分别独立进行&#xff0c;它带来了多方面的好处&#xff1a; 1、独立开发和维护&#xff1a; 前后端分离允许前端和后端开发团队独立进行工作。这意味着两个团队可以并行开发&#xff0c;提高了整体的开发效率。前…...

C语言中的结构体和联合体:异同及应用

文章目录 C语言中的结构体和联合体&#xff1a;异同及应用1. 结构体&#xff08;Struct&#xff09;的概述代码示例&#xff1a; 2. 联合体&#xff08;Union&#xff09;的概述代码示例&#xff1a; 3. 结构体与联合体的异同点相同点&#xff1a;不同点&#xff1a;代码说明 结…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...