https配置证书

HTTPS 基本原理

https 介绍

HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷是为了保证数据安全。 国内外的大型互联网公司很多也都已经启用了HTTPS,这也是未来互联网发展的趋势。

1、加密算法

  1. 对称加密

    A要给B发送数据
    
    1,A做一个对称密钥
    2,使用密钥给文件加密
    3,发送加密以后的文件和钥匙
    4,B拿钥匙解密
    

    加密和解密都是使用的同一个密钥。

  2. 非对称加密 ---- 公钥加密,私钥解密

    A要给B发送数据

    1.B做一对非对称的密钥
    2.发送公钥给A
    3.A拿公钥对数据进行加密
    4.发送加密后的数据给B
    5.B拿私钥解密
    
  3. 哈希算法
    将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多。

    例如:MD5、SHA-1、SHA-2、SHA-256 等

  4. 数字签名

    签名就是在信息的后面再加上一段内容(信息经过hash后的值),可以证明信息没有被修改过。hash值一般都会加密后(也就是签名)再和信息一起发送,以保证这个hash值不被修改。
    

2、HTTPS 协议介绍

  • HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器与Web服务器之间的应用层通信协议 。
  • HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。


在这里插入图片描述

  • 如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLS

    SSL/TLS :SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层为数据通讯进行加密提供安全支持。

    SSL协议提供的服务主要有:

 ssl:身份认证和数据加密。保证数据完整性
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。 

3、HTTPS 原理

1、HTTP 访问过程

在这里插入图片描述
如上图所示,HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程,数据全部明文传输,“裸奔”在互联网上,所以很容易遭到黑客的攻击,如下:

在这里插入图片描述

可以看到,客户端发出的请求很容易被黑客截获,如果此时黑客冒充服务器,则其可返回任意信息给客户端,而不被客户端察觉。

所以 HTTP 传输面临的风险有:

- 窃听风险:黑客可以获知通信内容。
- 篡改风险:黑客可以修改通信内容。
- 冒充风险:黑客可以冒充他人身份参与通信。

那有没有一种方式既可以安全的获取公钥,又能防止黑客冒充呢? 那就需要用到终极武器了:SSL 证书(申购)

  • 证书:.crt, .pem
  • 私钥:.key
  • 证书请求文件:.csr
    在这里插入图片描述

如上图所示,在第 ② 步时服务器发送了一个SSL证书给客户端,SSL 证书中包含的具体内容有:

(1)证书的发布机构CA

(2)证书的有效期

(3)公钥

(4)证书所有者

(5)签名 ----- 签名就可以理解为是钞票里面的一个防伪标签。

客户端在接受到服务端发来的SSL证书时,会对证书的真伪进行校验,以浏览器为例说明如下:

(1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验

(2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发

(3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。

(4)如果找到,那么浏览器就会从操作系统中取出 颁发者CA 的公钥,然后对服务器发来的证书里面的签名进行解密

(5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比

(6)对比结果一致,则证明服务器发来的证书合法,没有被冒充

(7)此时浏览器就可以读取证书中的公钥,用于后续加密了

  (8)client与web协商对称加密算法,client生成对称加密密钥并使用web公钥加密,发送给web服务器,web服务器使用web私钥解密 

  (9)使用对称加密密钥传输数据,并校验数据的完整性

4、所以通过发送SSL证书的形式,既解决了公钥获取问题,又解决了黑客冒充问题,一箭双雕,HTTPS加密过程也就此形成

所以相比HTTP,HTTPS 传输更加安全

(1) 所有信息都是加密传播,黑客无法窃听。

(2) 具有校验机制,一旦被篡改,通信双方会立刻发现。

(3) 配备身份证书,防止身份被冒充。

3、CA 机构

CA(Certificate Authority)证书颁发机构主要负责证书的颁发、管理以及归档和吊销。证书内包含了拥有证书者的姓名、地址、电子邮件帐号、公钥、证书有效期、发放证书的CA、CA的数字签名等信息。证书主要有三大功能:加密、签名、身份验证。

阿里云申请配置ssl证书—实战

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
阿里云配置证书案例:
yum安装nginx ----略
将证书上传到服务器中
1.首先需要在服务器创建对应的文件夹,参考命令如下
[root@nginx ~]# cd /etc/nginx/ && mkdir cert
2.在服务器创建完成对应文件夹之后,将证书文件复制到服务器中
[root@nginx nginx]# cd
[root@nginx ~]# ls
2447549_www.testpm.cn_nginx.zip
[root@nginx ~]# yum install -y unzip
[root@nginx ~]# unzip 2447549_www.testpm.cn_nginx.zip
Archive: 2447549_www.testpm.cn_nginx.zip
Aliyun Certificate Download
inflating: 2447549_www.testpm.cn.pem
inflating: 2447549_www.testpm.cn.key
[root@nginx ~]# ls
2447549_www.testpm.cn.key 2447549_www.testpm.cn_nginx.zip 2447549_www.testpm.cn.pem
[root@nginx ~]# cp 2447549_www.testpm.cn* /etc/nginx/cert/
[root@nginx ~]# cd /etc/nginx/cert/
改名:
[root@nginx cert]# mv 2447549_www.testpm.cn.key www.testpm.cn.key
[root@nginx cert]# mv 2447549_www.testpm.cn.pem www.testpm.cn.pem
证书配置
证书复制完成之后,可以对nginx配置文件进行更改,使用vim命令
[root@nginx ~]# cd /etc/nginx/conf.d/
[root@nginx conf.d]# vim nginx_ssl.conf
[root@nginx conf.d]# cat /etc/nginx/conf.d/nginx_ssl.conf
server {
listen 443 ssl; #https端口
server_name www.testpm.cn;
access_log /var/log/nginx/https_access.log main;

ssl_certificate   /etc/nginx/cert/www.testpm.cn.pem; #指定证书路径
ssl_certificate_key  /etc/nginx/cert/www.testpm.cn.key; #指定私钥路径
ssl_session_timeout 5m; #配置用于SSL会话的缓存
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #指定使用的协议
ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #密码指定为OpenSSL支持的格式
ssl_prefer_server_ciphers on;  #设置协商加密算法。

location / {
    root  /usr/share/nginx/html;
    index index.html index.htm;
}

}


需要给域名做一个解析,香港的服务器添加一个A记录即可
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f4c429951579470b871855d3a10edb58.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d30ea4ca93ee447c935eefa1ce8035d9.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5552d34d35d54c9082f2b247cfcfc336.png)
解析完成之后大约需要等待3-5分钟

**测试访问**
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/cceb09fd8a1f4918892d8977d79dff01.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/238ee722aff24709a6e17c138db8ecea.png)
访问成功!

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

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

相关文章

OpenAI ChatGPT-4开发笔记2024-05:windows下anaconda中设置visual studio code workspace

这里写自定义目录标题 1 安装anaconda和vscode2 Create an Anaconda Environment3 select Python Interpreter4 Workspace5 Open Workspace With File6 开发文件夹加入workspace7 美化 1 安装anaconda和vscode 标配。 2 Create an Anaconda Environment conda create --name…

编译原理Lab4-使用LightIR框架自动产生cminus-f语言的LLVM IR

[[#实验框架|实验框架]][[#实验过程|实验过程]] [[#实验过程#全局变量的设计|全局变量的设计]][[#实验过程#1ASTProgram|1ASTProgram]][[#实验过程#2ASTNum|2ASTNum]][[#实验过程#3ASTVarDeclaration|3ASTVarDeclaration]][[#实验过程#4ASTFunDeclaration|4ASTFunDeclaration]]…

简析云能耗管理系统在某高校建筑系统平台的设计与应用

叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 摘要:根据本项目,依托某学院电能计量管理系统、供水计量监督系统、供热计量管理系统等基础平台,制定了高校建筑能耗综合管理系统平台应用的总体框架和方案。该系统可以实时监控、统计能耗和…

轻松掌握 Java Faker ,学点真本事,做点“假”数据~

工作中难免遇到需要造点“假”数据的情况,而且数据必须是“真”的,演示效果要好看一些。 一般接到这种要求,大部分的测试都不太知道该怎么去做。今天罗杰老师教你一招,让你做出逼真的“假”数据。 前言 1、什么是 Java Faker 伪…

【c++】list的特性及使用

目录 一、list的介绍 二、list的深度剖析与模拟实现 1、list图解 2、list增删查改模拟实现 三、list与vector的对比 一、list的介绍 STL中的list指的是带头双向循环链表。list是可以在常数范围内任意位置进行插入和删除的序列式容器,并且可以前后双向迭代。lis…

Activiti7官方在线流程设计器下载和部署

文章目录 一、流程设计器下载二、流程设计器简单运行三、流程设计器简单使用四、流程设计器持久化持久化会遇到的常见错误 五、流程设计器汉化说明菜单汉化操作汉化 参考文档 一、流程设计器下载 官网下载地址:https://www.activiti.org/get-started 点击直接获取官…

Flutter 小技巧之升级适配 Xcode15

美好的 2024 从「适配」开始,按照苹果的尿性,2024 春季开始大家将不得使用 Xcode15 来构建 App ,另外根据《2024 的 iOS 的隐私清单》 要求,使用 Flutter 的开发者是无法逃避适配 Xcode15 更新的命运。 另外,众所周知…

vue3组件传参

1、props: 2、自定义事件子传父 3、mitt任意组件通讯 4、v-model通讯(v-model绑定在组件上) (1)V2中父子组件的v-model通信,限制了popos接收的属性名必须为value和emit触发的事件名必须为input,所以有时会有冲突; 父组件: 子组件: (2)V3中:限制了popos接收的属性名…

详解Java死锁-检测与解决

第1章:引言 大家好,我是小黑,咱们今天来聊聊死锁。特别是对于咱们这些Java程序员来说,死锁就像是隐藏在暗处的陷阱,稍不注意就会掉进去。但别担心,小黑今天就来带大家一探究竟,看看怎么样才能避…

什么是短视频矩阵系统?效果是怎么样的?

短视频矩阵系统是一种通过将多个短视频连接起来形成一个整体的系统。它的效果是可以提供一种连贯而有序的观看体验,使观众可以连续地观看一系列相关的短视频内容。 短视频矩阵系统的运作方式如下:首先,用户在平台上选择一个短视频开始观看。…

一款开源的MES系统

随着工业4.0的快速发展,制造执行系统(MES)成为了智能制造的核心。今天,将为大家推荐一款开源的MES系统——iMES工厂管家。 什么是iMES工厂管家 iMES工厂管家是一款专为中小型制造企业打造的开源MES系统。它具备高度的可定制性和灵…

刷了四百道算法题,我在项目里用过哪几道呢?

大家好,我是老三,今天和大家聊一个话题:项目中用到的力扣算法。 不知道从什么时候起,算法已经成为了互联网面试的标配,在十年前,哪怕如日中天的百度,面试也最多考个冒泡排序。后来,…

强化学习的数学原理学习笔记 - 策略梯度(Policy Gradient)

文章目录 概览:RL方法分类策略梯度(Policy Gradient)Basic Policy Gradient目标函数1:平均状态值目标函数2:平均单步奖励🟡PG梯度计算 🟦REINFORCE 本系列文章介绍强化学习基础知识与经典算法原…

android的求职APP 前端+后端

一 项目名称 基于android的求职APP,包含前台和后台管理系统的,前端主要移动端,应聘者注册账号,然后登陆,完善自己的简历,然后根据自己的需要投递岗位,查看面试邀请,后台主要维护数据…

听GPT 讲Rust源代码--compiler(34)

File: rust/compiler/rustc_middle/src/ty/print/mod.rs 在Rust源代码中&#xff0c;文件rust/compiler/rustc_middle/src/ty/print/mod.rs的作用是定义了打印类型和其他相关信息的功能。 具体来说&#xff0c;该文件中定义了三个trait&#xff0c;分别为Print<tcx>、Pri…

Java_特殊文件

一、属性文件 1.1 特殊文件概述 前面学习了IO流&#xff0c;知道IO流是用来读、写文件中的数据。但是接触到的文件都是普通的文本文件&#xff0c;普通的文本文件里面的数据是没有任何格式规范的&#xff0c;用户可以随意编写&#xff0c;如下图所示。 像这种普通的文本文件…

Selenium教程08:文件的上传+下载的示例练习

1.上传李白.txt文件&#xff0c;这里使用的send_keys方法操作&#xff0c;而不是click点击操作&#xff0c;因为使用点击操作之后&#xff0c;Selenium中没有方法对.exe程序操作&#xff0c;它只能对web网页自动化操作。 # Author : 小红牛 # 微信公众号&#xff1a;WdPython…

web前端开发技术复习问答题

目录 1.简述常见单标签和双标签有哪些&#xff1f; 2.常见块级元素和行级元素有哪些&#xff1f; 3.简述常见的列表有哪些&#xff1f;他们有什么区别&#xff1f; 4.简述超链接的href属性值如何设置&#xff1f;有什么区别 5.CSS基本语法 6. css中常见的引入方式有几种&…

AIGC-无人直播系统技术源头

AIGC-无人直播系统技术&#xff0c;作为当今科技领域的一项重要创新&#xff0c;正在引领着直播行业迈向更高的境界。那么&#xff0c;究竟是什么推动了这项技术的发展呢&#xff1f; 首先&#xff0c;我们不得不提到人工智能&#xff08;AI&#xff09;这一前沿技术的发展。随…

【数据库】CRUD常用函数UNION 和 UNION ALL

文章目录 一、CRUD二、函数2.1 字符函数 (Character Functions):2.2 数字函数 (Numeric Functions):2.3 日期函数 (Date Functions):2.4 流程控制函数:2.5 聚合函数: 三、UNION 和 UNION ALL3.1 UNION&#xff1a;3.2 UNION ALL3.3 注意事项 一、CRUD CRUD 是指数据库操作的四…