Https加密超文本传输协议的运用

 1.https的相关知识

1.1 https的简介
 

 HTTPS (全称:Hypertext Transfer Protocol Secure   ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性   。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面  。
 

1.2 HTTP 与 HTTPS 的区别 


HTTP 是明文传输协议,HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。

HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO,谷歌、百度优先索引HTTPS网页;

HTTPS需要用到SSL证书,而HTTP不用【(HTTPS是安装SSL的服务器,HTTP是未安装SSL的服务器)】;

HTTPS标准端口443,HTTP标准端口80;

HTTPS基于传输层,HTTP基于应用层;

HTTPS在浏览器显示绿色安全锁,HTTP没有显示;

1 .3 SSL的相关了解
 

SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。
 

 

1.3 SSL/TLS协议和证书的关系 


 为保证网络安全,我们需要给服务器颁发证书,这个证书可以自己生成,但是自己颁发证书是不安全的,可以被别人伪造,一般都是在第三方机构购买证书。实际上证书并不依赖于协议,和协议也并没有太大的关联,协议是由服务配置来决定的,而证书是配合着协议去使用
 

1.4 https的工作流程 
 

 (1)客户端发发起https请求,通过域名解析发送至服务端的443端口,建立TCP连接

 (2)服务端会将事先准备好的证书文件发送给客户端

 (3)客户端会先验证服务端的证书的有效性,如果无效则显示警告信息,表示该网站不安全。

 (4)如果有效,客户端会使用服务端发送过来的证书文件中的密钥,来加密自己使用的伪随机数生成的会话私钥,并将其发送给服务端。

(5)服务端会用私钥文件将客户端发送过来的加密会话密钥进行解钥,并获取该会话密钥

(6)之后客户端和服务端的之间的数据交流,会通过密钥的加密发送,解密获取,来完成整个通讯过程
 

 

该过程中,服务端在获取到会话密钥时,证书中产生的公钥私钥进行会话密钥获取的方式为非对称密钥方式。之后客户端服务端建立起了会话私钥进行交流的方式为对称密钥方式。

1.5 客户端是如何验证证书是否有效 


浏览器一般会预安装一些比较权威的第三方认证机构的公钥,比如VeriSign、Symantec以及GlobalSign等等。

验证数字签名的时候,会直接从本地拿到相应的第三方的公钥,对私钥加密后的数字签名进行解密得到真正的签名。

然后客户端利用签名生成规则进行签名生成,看两个签名是否匹配,如果匹配认证通过,不匹配则获取证书失败。
 

 

 1.6 web网站并未全部采用https的原因
 

首先,很多人还是会觉得HTTPS实施有门槛,这个门槛在于需要权威CA颁发的SSL证书。从证书的选择、购买到部署,传统的模式下都会比较耗时耗力。

其次,HTTPS普遍认为性能消耗要大于HTTP,因为与纯文本通信相比,加密通信会消耗更多的CPU及内存资源。如果每次通信都加密,会消耗相当多的资源,平摊到一台计算机上时,能够处理的请求数量必定也会随之减少

除此之外,想要节约购买证书的开销也是原因之一。要进行HTTPS通信,证书是必不可少的。而使用的证书必须向认证机构(CA)购买。

最后是安全意识别。相比国内,国外互联网行业的安全意识和技术应用相对成熟,HTTPS部署趋势是由社会、企业、政府共同去推动的。
 

2. SSL证书获取的方法

 2.1 阿里云证书的获取

一般的权威大厂都会对SSL证书有发售,可以选择直接去选购该证书,下面是阿里云证书的售卖网址。

https://www.aliyun.com/product/cas?userCode=r3yteowb

 2.2 openssl的证书创建

(1)创建ca私钥

//首先创建一个存放目录
mkdir /tls
cd /tls/
 
//生成ca证书
 
openssl genrsa -aes256 -out ca-key.pem 4096            #输入123123
----------------------------------------------------------------------------------------------------------
genrsa:使用RSA算法产生私钥
-aes256:使用256位密钥的AES算法对私钥进行加密,这样每次使用私钥文件都将输入密码,可省略
-out:输出文件的路径,若未指定输出文件,则为标准输出
4096:指定私钥长度,默认为1024。该项必须为命令行的最后一项参数
----------------------------------------------------------------------------------------------------------

 

(2)创建ca证书 

openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -subj "/CN=*" -out ca.pem            #输入123123
----------------------------------------------------------------------------------------------------------
req:执行证书签发命令
-new:新证书签发请求
-x509:生成x509格式证书,专用于创建私有CA时使用
-days:证书的有效时长,单位是天
-key:指定私钥路径
-sha256:证书摘要采用sha256算法
-subj:证书相关的用户信息(subject的缩写)
-out:输出文件的路径
----------------------------------------------------------------------------------------------------------
 

 

(3)创建服务器私钥 

//用 ca 证书签发 server 端证书
openssl genrsa -out server-key.pem 4096

 

(4)生成证书签名请求文件(csr文件)

openssl req -new -key server-key.pem -sha256 -subj "/CN=*" -out server.csr

 

(5)使用ca 证书与私钥证书签发服务端签名证书 

#该过程需要输入密码 123123,(需要签名请求文件,ca 证书,ca 密钥)
 
openssl x509 -req -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -days 1000 -out server-cert.pem
----------------------------------------------------------------------------------------------------------
x509:生成x509格式证书
-req:输入csr文件
-in:要输入的csr文件
-CA:指定ca证书的路径
-CAkey:指定ca证书的私钥路径
-CAcreateserial:表示创建证书序列号文件,创建的序列号文件默认名称为ca.srl
----------------------------------------------------------------------------------------------------------

 

(6)生成客户端私钥 

//用ca证证书签发client端证书
openssl genrsa -out client-key.pem 4096

 

(7)生成证书签名请求文件

openssl req -new -key client-key.pem -subj "/CN=client" -out client.csr

 (8)创建扩展配置文件,使秘钥适合客户端身份验证 

echo extendedKeyUsage=clientAuth > extfile.cnf

(9)使用 ca 证书签发客户端签名证书 


openssl x509 -req -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -extfile extfile.cnf -days 1000 -out client-cert.pem 

输入 123123,(需要签名请求文件,ca 证书,ca 密钥)

 

  1. //删除两个证书签名请求文件和扩展配置文件

  2. rm -rf ca.srl client.csr extfile.cnf server.csr

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

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

相关文章

使用POI实现JAVA操作Excel

Apache POI POI提供API给JAVA程序对Microsoft Office格式档案读和写的功能 POI工具介绍 POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。主要是运用其中读取和输出excel的功能。 POI官网地…

常用设计模式(三)

接着之前的思路今天来介绍一下常用的设计模式有哪些 单例模式(Singleton Pattern) 又称为单体模式,保证一个类只有一个实例,并提供一个访问它的全局访问点。也就是说,第二次使用同一个类创建新对象的时候&#xff0c…

es相关的知识点

海量数据下如何提升es的操作性能 .filesystemcache os cache操作系统缓存 es中的数据,实际上写入磁盘,磁盘文件的操作系统,实际上会将数据写入到oscache中 es的搜索引擎严重依赖于底层的filesystemcache 如果filesystemcache的内存足够大,可以容纳所有的index segmentfile索引…

ABB CI546 3BSE012545R1 模块

ABB CI546 3BSE012545R1 模块. ABB CI546 3BSE012545R1 模块 电子电工技术的电力系统分析 1电子电工技能特色 电子电工技能是凭仗计算机技能开展起来的,并朝着智能化、网络化的方向开展。随着时代的开展,新式技能不断涌现,使传统电工技能运用…

基于 opencv 的人脸识别上课考勤系统,附源码,可作为毕业设计

一、简介 这个人脸识别考勤签到系统是基于大佬的人脸识别陌生人报警系统二次开发的。 项目使用Python实现,基于OpenCV框架进行人脸识别和摄像头硬件调用,同时也用OpenCV工具包处理图片。交互界面使用pyqt5实现。 该系统实现了从学生信息输入、人脸数据…

【微服务】SpringBoot 插件化开发模式详细总结

目录 一、前言 1.1 使用插件的好处 1.1.1 模块解耦 1.1.2 提升扩展性和开放性 1.1.3 方便第三方接入 1.2 插件化常用实现思路 二、Java常用插件实现方案 2.1 serviceloader方式 2.1.1 java spi 2.1.2 java spi 简单案例 2.2 自定义配置约定方式 2.2.1 添加配置文件…

【备战秋招】每日一题:4月15日美团春招:题面+题目思路 + C++/python/js/Go/java带注释

2023大厂笔试模拟练习网站(含题解) www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据,挂载到我们的OJ上,供大家学习交流,体会笔试难度。现已录入200道互联网大厂模拟练习题&a…

【深入浅出 Spring Security(九)】解决跨域问题和 Axios 所需配置

跨域 一、SpringMVC 跨域的解决方案CrossOrigin(注解的方式解决)addCorsMappings(实现WebMvcConfigurer接口,重写方法) 二、Spring Security 跨域的解决方案前后端跨域测试(前端相关配置) 啥是跨…

怎样才算一个计算机知识体系完整的毕业生

为什么突然想写这个话题呢? 最近有不少新关注的读者,在后台问:大学学 Java 和 C 哪个好找工作,学前端好还是后端好,该学 Vue 还是 React。。。 仿佛看到了自己当年的模样,所以觉得有必要单独写一篇文章&a…

【数据结构与算法】02 栈 (栈的多重含义,静态、动态数组栈(顺序栈),链式栈,双端栈,括号匹配)

一、栈的多重含义1.1 硬件栈1.2 运行时栈1.3 软件栈1.4 技术栈1.5 TCP/IP协议栈 二、数据结构中的栈2.1 概念2.2 栈的操作2.3 数组栈(顺序栈)2.31 数组栈特性2.32 C语言实现▶ 静态数组栈▶ 动态数组栈 2.4链式栈2.41 链式栈特性2.42 C语言实现 三、进阶…

「展会前线」易天光通信盛装亮相2023越南通讯展会

2023年6月7日,在历经了忙碌有序的前期准备工作后,易天光通信销售团队带着满满的信心踏上了越南通讯展会之旅! “千呼万唤始出来,犹抱琵琶半遮面”。2023年6月8日,各方期待已久的2023越南通讯展会在越南胡志明市正式开…

【新版】系统架构设计师 - 系统配置与性能评价

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 系统配置与性能评价考点摘要系统性能概述性能指标性能调整阿姆达尔解决方案性能评价方法 架构 - 系统配置与性能评价 考点摘要 性能指标(★★)阿姆达尔解决方案&#xff…

第Y3周:yolov5s.yaml文件解读

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊|接辅导、项目定制 ✅本周任务:将yolov5s网络模型中第4层的C3*2修改为C3*1,第6层的C3*3修改为C3*2。 简单介绍: YOLOv5配置了…

MapBox实现框选查询,多边形范围查询

还是老规矩先来看效果: mapbox官方没有为我们提供框选查询的案例,所以这个功能需要我们自己写。在openlayers框架中是有一个矩形范围查询的例子,但是在maobox没有。 那么我们就来说一下如何来做这个效果吧,首先这个效果可以分为两…

6道常见hadoop面试题及答案解析

Q1.什么是Hadoop?   Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容:   HDFS(Ha…

红外人体感应灯单片机开发方案

近来,红外人体感应灯受到了居家人们关注和喜爱。为此,宇凡微推出了一款低成本红外人体感应灯单片机方案。红外人体感应灯可应用于走廊、床边、楼梯、衣柜等地方,提供柔和照明作用。人来即亮,人走即灭,不受强光影响睡眠…

位姿估计 | 空间目标位姿估计方法分类总结

目录 前言位姿估计方法分类一、传统位姿估计方法1. 基于特征的位姿估计2. 基于模型的位姿估计 二、深度学习位姿估计方法 总结 前言 本文接着分享空间目标位姿跟踪和滤波算法中用到的一些常用内容,希望为后来者减少一些基础性内容的工作时间。以往分享总结见文章&a…

【C语言】整,浮点型数据存储,大小端。细节拉满!!

目录 一. 整型 1. C语言内置整型家族 类型的意义: 2.整型在内存如何存储的呢? 3. 原码,反码, 补码 原码 反码 补码 4. 当 整型遇上unsigned 会发生什么呢? 1. unsigned 与 signed 解析 2. printf 输出 有无…

【新版】系统架构设计师 - 信息安全技术基础知识

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 信息安全技术基础知识考点摘要信息安全基础知识信息安全系统的组成框架信息加密技术对称加密(共享密钥)非对称加密(公开密钥)信息摘要数字签名数字信…

IDEA安装教程2023

在本文中,我们将提供关于如何安装 IntelliJ IDEA 的详细步骤。如果您是初学者或只是想尝试一下 IDEA,我们建议您下载 Community 版。如果您需要更多高级功能,可以选择 Ultimate 版。 步骤一:下载 IntelliJ IDEA 首先,…