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证书的部署,可以看到单纯看证书的部署并不难,关键大家要体会到证书的含义和作用

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

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

相关文章

第二十一章博客

计算机应用实现了多台计算机间的互联,使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序,这些程序借助于网络协议,相互之间可以交换数据。编写网络应用程序前,首先必须明确所要使用的网络协议…

C++面试宝典第9题:找出第K大元素

题目 给定一个整数数组a,同时给定它的大小N和要找的K(1 <= K <= N),请根据快速排序的思路,找出数组中第K大的数(保证答案存在)。比如:数组a为[50, 23, 66, 18, 72],数组大小N为5,K为3,则第K大的数为50。 解析 这道题主要考察应聘者对于快速排序的理解,以及实…

开源项目解读 —— Self-Operating Computer Framework # 长期主义 # 价值

价值&#xff1a;生成主函数业务逻辑函数思维导图&#xff0c;帮助理解&#xff0c;PR到开源项目&#xff0c;希望帮助大家理解IPA工作原理&#xff0c;国内没有好的开源项目&#xff0c;我就来翻译分析解读&#xff0c;给大家抛砖引玉。思维导图用文心一言配合其思维导图插件实…

算法基础之数字三角形

数字三角形 核心思想&#xff1a;线性dp 集合的定义为 f[i][j] –> 到i j点的最大距离 从下往上传值 父节点f[i][j] max(f[i1][j] , f[i1][j1]) w[i][j] 初始化最后一层 f w #include <bits/stdc.h>using namespace std;const int N 510;int w[N][N],f[N][…

Dash中 基本的 callback 5

app.callback 在Dash中&#xff0c;app.callback 被用于创建交互性应用程序&#xff0c;它用于定义一个回调函数&#xff0c;该函数在应用程序中发生特定事件时被触发。回调函数可以修改应用程序的布局或更新图表等内容&#xff0c;从而实现动态交互。 下面是一个简单的 app.…

多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测

多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测 目录 多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多…

Plantuml之序列图语法介绍(十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【Rust与AI】LLM模型基本架构

本篇是《Rust与AI》系列的第二篇&#xff0c;上一篇我们主要介绍了本系列的概览和方向&#xff0c;定下了一个基调。本篇我们将介绍LLM的基本架构&#xff0c;我们会以迄今为止使用最广泛的开源模型LLaMA为例展开介绍。 LLM背景 Rust 本身是不挑 AI 模型的&#xff0c;但是 LLM…

Java进阶(第六期): Arrays类(数组工具)、冒泡排序、选择排序、二分查找、【正则表达式】、Java正则爬取信息

文章目录 一、Arrays1.1代码示例&#xff1a; 二、冒泡排序2.1 代码示例 三、选择排序3.1 代码示例 四、二分查找4.1 代码示例 &#xff08;这里采用乱序数组&#xff09; 五、正则表达式5.1 正则表达式的基本使用5.2 正则表达式爬取信息练习 Java进阶&#xff08;第六期&#…

vue3(七)-基础入门之事件总线与动态组件

一、事件总线 事件总线使用场景&#xff1a; 两个兄弟组件之间的传参&#xff0c;或者两个没有关联的组件之间的传参 html &#xff1a;引入 publicmsg 与 acceptmsg 自定义组件 (自定义组件名称必须小写) <body><div id"app"><publicmsg></…

CGAL的三维点集

CGAL提供了几种处理点集的算法&#xff0c;从形状检测到通过标准点集处理工具进行的表面重建。 虽然这些算法不强制使用特定的数据结构&#xff0c;但该软件包提供了一个3D点集结构&#xff0c;使用户更容易处理附加属性&#xff0c;如法向量、颜色、标签&#xff0c;并在其上调…

LabVIEW在横向辅助驾驶系统开发中的应用

LabVIEW在横向辅助驾驶系统开发中的应用 随着横向辅助驾驶技术的快速发展&#xff0c;越来越多的研究致力于提高该系统的效率和安全性。项目针对先进驾驶辅助系统&#xff08;ADAS&#xff09;中的横向辅助驾驶进行深入研究。在这项研究中&#xff0c;LabVIEW作为一个强大的系…

数禾使用 Knative 加速 AI 模型服务部署丨KubeCon China 2023

作者&#xff1a;李鹏&#xff08;阿里云&#xff09;、魏文哲&#xff08;数禾科技&#xff09;&#xff0c; 此文基于 KubeCon China 2023 分享整理 摘要 AI 服务的数据、训练、推理等都需要消耗大量的计算资源以及运维成本&#xff0c;在数禾科技的金融业务场景下&#xf…

uni-app 工程目录结构介绍

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

遇到DDOS怎么办,盾真的可以抗攻击吗

网络在以难以想象的速度发展&#xff0c;黑客们针对网络漏洞发起的攻击也从未停止&#xff0c;但复杂的网络环境让网络安全的维护更为艰难&#xff0c;如果游戏公司没有做好防御措施&#xff0c;黑客发起攻击只是时间问题。在网络攻击愈加多元化的今天&#xff0c;游戏行业可以…

基于SSM在线协同过滤汽车推荐销售系统

SSM毕设分享 基于SSM在线协同过滤汽车推荐销售系统 1 项目简介 Hi&#xff0c;各位同学好&#xff0c;这里是郑师兄&#xff01; 今天向大家分享一个毕业设计项目作品【】 师兄根据实现的难度和等级对项目进行评分(最低0分&#xff0c;满分5分) 难度系数&#xff1a;3分 工作…

图解二叉树的Morris(莫里斯)遍历

二叉树的Morris(莫里斯)遍历 本文参考链接&#xff1a;https://leetcode.cn/problems/binary-tree-preorder-traversal/submissions/490846864/ 文章目录 二叉树的Morris(莫里斯)遍历模板代码前序遍历中序遍历后序遍历 Morris 遍历使用二叉树节点中大量指向 null 的指针&…

Apache Commons CLI:构建命令行应用的利器

引言 大家好&#xff01;我是小黑&#xff0c;本文聊聊如何用Apache Commons CLI构建命令行应用。咱们都知道&#xff0c;命令行界面&#xff08;CLI&#xff09;虽然看起来不如图形界面那么花哨&#xff0c;但在许多场景下&#xff0c;它的效率和便利性是无与伦比的。特别是对…

设计模式--命令模式

实验16&#xff1a;命令模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解命令模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用命令模式解决实际问题。 [实验任务]&#xff1a;多次撤销和重复的命令模式 某系…

uni-app之HelloWorld实现

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…