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

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

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

相关文章

doris基本操作,03-导入数据-Broker Load

简述 Broker load 是异步导入方式,支持的数据源取决于 Broker 进程支持的数据源。 因为 Doris 表里的数据是有序的,所以 Broker load 在导入数据的时是要利用doris 集群资源对数据进行排序,相对于 Spark load 来完成海量历史数据迁移&#…

解决Maven找不到依赖的问题

如果经过Reload Maven项目,清除Idea缓存,甚至重启Idea等方法都解决不了Dependency xxx not found的问题,不妨试试手动安装。 1. 进入maven仓库,搜索自己需要的对应版本的依赖。 2. 点击下图红框jar图标下载对应的jar包&#xff0c…

DP进阶之路——爬楼梯

爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&am…

【K8S基础】-k8s的核心概念控制器和调度器

Kubernetes是一个开源的容器编排平台,旨在简化和自动化容器化应用程序的部署、扩展和管理。它提供了一个强大的基础设施来管理容器化应用程序的生命周期,并确保它们在整个集群中高效运行。 Kubernetes的核心概念包括集群、节点、Pod、控制器、调度器等。…

求职小程序列表基础配置-移动端通用列表模块配置教程(1)

求职小程序列表基础配置-移动端通用列表模块配置教程(1) 移动端通用列表页开发指南 准备工作 注册多八多AIIDE账号: 访问多八多AIIDE官网并注册新账号。完成邮箱和手机号的验证。 创建移动应用: 登录后,在工作台新建一个移动应用。填写应用名称,选择“…

lv13 环境搭建之内核编译 4

一、开发板运行Linux 1. 网线连接开发板和主机 2. ubuntu下拷贝uImage、exynos4412-fs4412.dtb两个文件到/tftpboot目录下cd ~/fs4412cp uImage exynos4412-fs4412.dtb /tftpboot 3. rootfs.tar.xz解压到/opt/4412sudo tar xvf rootfs.tar.xz -C /opt/4412sudo chmod 777 /opt…

软件测试面试八股文——基础篇

5)错误推测法:是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法 6)正交实验法 7)判定表法 8)测试大纲法 3、提交缺陷的八大要素 1)缺陷编号&#xff1a…

2023.12.24 关于 Redis 中 String 类型内部编码和应用场景

目录 String 类型内部编码 3 种内部编码方式 String 类型应用场景 Cache 缓存 键名命名规则 计数(Counter) 共享会话(Session ) 手机验证码 总结 String 类型内部编码 3 种内部编码方式 int:用来表示 64 位 —…

智能优化算法应用:基于食肉植物算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于食肉植物算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于食肉植物算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.食肉植物算法4.实验参数设定5.算法结果6.…

详细学习Java注解Annotation、元注解(通俗易懂,一学就会)

概述 底层原理 自定义注解 示例代码: 1. 2.只有属性名为value的才可以,java对它进行了标识,如果是其他别名如value1是不行的 3.多个属性,必须用键值对形式,不能少写,也不能多写,除非有default修…

嵌入式中一文搞定C语言数据结构--跳表

大家好,今天分享一篇C语言数据结构相关的文章--跳表。 1. 什么是跳表 跳表是 链表 索引 的一种数据结构 ,是以空间换取时间的方式,关于跳表参考: https://baike.baidu.com/item/跳表/22819833?fraladdin 2. 跳表概念 跳表在原有链表的基…

【算法】利用双指针法解决算法题(C++)

文章目录 1. 前言2. 双指针法引入283.移动零 3. 使用双指针法解决算法题1089.复写零202.快乐数11.盛最多水的容器[611.有效三角 形的个数](https://leetcode.cn/problems/valid-triangle-number/description/)LCR179.查找总价格为目标值的两个商品15.三数之和18.四数之和 1. 前…

redis基本用法学习(C#调用StackExchange.Redis操作redis)

StackExchange.Redis是基于C#的高性能通用redis操作客户端,也属于常用的redis客户端之一,本文学习其基本用法。   新建Winform项目,在Nuget包管理器中搜索并安装StackExchange.Redis,如下图所示:   StackExchange.…

开发利器——C语言必备实用第三方库

​ 对于广大C语言开发者来说,缺乏类似C STL和Boost的库会让开发受制于基础库的匮乏,也因此导致了开发效率的骤降。这也使得例如libevent这类事件库(基础组件库)一时间大红大紫。 今天,码哥给大家带来一款基础库&#…

使用 Privoxy 实现对多域名的定向转发

需求与思路 内网一台主机想要访问公网的两个不同站点, 想要实现访问两个站点时表现出不同的公网 IP 地址. 即在公网的站点服务器端看到的客户端 IP 是不同的. 思路是搭建两台具有不同公网 IP 的服务器, 分别安装配置 Privoxy 后进行串联, 并将其中一台作为主服务器暴露给内网…

操作系统期末复习资料

操作系统引论 计算机操作系统的功能是 。 A. 把源程序代码转换为目标代码 B. 实现计算机用户之间的相互交流 C. 完成计算机硬件与软件之间的转换 D. 控制、管理计算机系统的资源和程序的执行 010110011020100 D 010110021020101 操作系统是一组 。…

JavaScript进阶(事件+获取元素+操作元素)

目录 事件基础 事件组成 执行事件的步骤 获取元素 根据ID获取元素 根据标签名获取元素 获取ol中的小li 类选择器(html5新增的I9以上支持) 获取body和html 操作元素 innerText和innerHtml 表单标签 样式属性操作 操作元素总结 事件基础 事…

yolov5知识蒸馏

参考代码:https://github.com/Adlik/yolov5 https://cloud.tencent.com/developer/article/2160509 yolov5间的模型蒸馏,相同结构的。 配置参数 parser.add_argument(--t_weights, typestr, default./weights/yolov5s.pt,helpinitial teacher model wei…

JY901S 9轴姿态角度传感器模块

JY901S 9轴姿态角度传感器模块 JY901S 简介模块特性引脚说明IIC通讯IIC读写寄存器代码示例 JY901S 简介 模块集成高精度的陀螺仪、加速度计、地磁场传感器,采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法,能够快速求解出模块当前的实时运…

xtu oj 1055 整数分类

Description 按照下面方法对整数x进行分类:如果x是一个个位数,则x属于x类;否则将x的各位上的数码累加,得到一个新的x,依次迭代,可以得到x的所属类。比如说24,246,则24的类别数是6&a…