HTTPS原理详解

学习记录,仅供参考!

一、HTTPS和HTTP的区别

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

二、HTTP的工作流程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、实现原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、应用

在这里插入图片描述

01.准备工作

在客户端(Windows)生成证书,然后安装到服务端(Linux)。

安装OpenSSL工具

OpenSSL中包含生成证书的工具和各类加密算法。

下载OpenSSL

Windows:http://slproweb.com/products/Win32OpenSSL.html

Linux:https://www.openssl.org/source/

安装OpenSSL

Windows安装:

双击运行,安装到指定目录即可。

Linux安装(从1.0.x升级):

1.查看版本命令

openssl version 
openssl version -a

2.下载指定版本的 openssl 软件,两种方式

https://www.openssl.org/source/
wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz

3.解压压缩包

tar -zxvf openssl-1.1.1o.tar.gz

4.进入解压后的文件夹执行以下命令编译安装

./config shared zlib
make && make install

5.备份原来的软链接

mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
find / -name openssl

6.重新建立软链接

ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/include/openssl /usr/include/openssl
echo "/usr/local/lib64/" >> /etc/ld.so.conf
ldconfig// 验证安装
openssl version -a

02.生成服务端证书

在Windows系统中生成服务端证书,然后再把相关文件上传到服务器。

查看Win系统已存证书

certmgr.msc 

证书中的信息

  • Country Name (2 letter code) [XX]:CN #请求签署人的信息
  • State or Province Name (full name) []: #请求签署人的省份名字
  • Locality Name (eg, city) [Default City]:# 请求签署人的城市名字
  • Organization Name (eg, company) [Default Company Ltd]:#请求签署人的公司名字
  • Organizational Unit Name (eg, section) []:#请求签署人的部门名字
  • Common Name (eg, your name or your server’s hostname) []:#这里一般填写请求人的服务器域名

key:私钥

csr:证书签名请求文件,即待签名证书

crt:证书

在Win下生成证书

1.生成私钥:.key

找到OpenSSL安装目录下的/bin目录中的OpenSSL.exe

执行命令(注意目录的访问权限,下同)

openssl genrsa -des3 -out c:/dev/server.key

生成私钥,需要提供一个至少4位,最多1023位的密码

2.由私钥创建待签名证书:.csr

openssl.exe req -new -key c:/dev/server.key -out c:/dev/pub.csr

需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。

3.查看证书中的内容

openssl.exe req -text -in c:/dev/pub.csr -noout

生成内容清单:

server.key:服务器私钥

pub.csr:服务器待签名证书

03.自建CA对证书进行签名

我们用的操作系统(windows, linux, unix ,android, ios等)都预置了很多信任的根证书,比如我的windows中就包含VeriSign的根证书,那么浏览器访问服务器比如支付宝www.alipay.com时,SSL协议握手时服务器就会把它的服务器证书发给用户浏览器,而这本服务器证书又是比如VeriSign颁发的,自然就验证通过了。

由于费用的原因,我们需要自建CA机构,来给我们自己的证书进行签名。所谓“CA机构”的本质,其实也是一套证书,只不过这套证书具有“公信力”,可以用来给别人签名。

1.创建CA私钥
openssl.exe genrsa -out c:/dev/myca.key 2048
2.生成CA待签名证书
openssl.exe req -new -key c:/dev/myca.key -out c:/dev/myca.csr
3.生成CA根证书
openssl.exe x509 -req -in c:/dev/myca.csr -extensions v3_ca -signkey c:/dev/myca.key -out c:/dev/myca.crt
4.对服务器证书签名

对上一个环节生成的服务端 待签名证书(.csr) 进行签名,需要用到本CA机构的 私钥(.key)证书(.crt) 作为参数:

openssl x509 -days 365 -req -in c:/dev/pub.csr -extensions v3_req -CAkey c:/dev/myca.key -CA c:/dev/myca.crt -CAcreateserial -out c:/dev/server.crt

生成内容清单:

myca.key:ca机构私钥

myca.csr:ca机构待签名证书

myca.crt:ca机构证书,即根证书

server.crt:服务器证书,被ca机构签名过的证书

04.Nginx配置

将生成好的服务端证书上传到服务器指定目录,并在Nignx中进行配置

     server {listen       443 ssl;server_name  aa.abc.com;ssl_certificate      /data/cert/server.crt;ssl_certificate_key  /data/cert/server.key;}

添加信任

在当前系统中安装证书

五、性能优化

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C++速通LeetCode简单第5题-回文链表

解法1,堆栈O(n)简单法: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListN…

jdk环境变量配置+eclipse配置jdk

文章目录 安装jdkjdk环境变量配置eclipse里边配置jdkeclipse覆盖率插件——EclEmma的安装和使用 安装jdk 在安装前可以先建两个文件夹,注意不要文件夹用英文,不要用中文,如图: 然后我们开始安装 然后就看我们有没有安装成功…

【Unity踩坑】No cloud project ID was found by the Analytics SDK

在编译默认的URP 2D项目时,出现这样一个错误:No cloud project ID was found by the Analytics SDK. This means Analytics events will not be sent. Please make sure to link your cloud project in the Unity editor to fix this problem. 原因&…

【目标检测数据集】厨房常见的水果蔬菜调味料数据集4910张39类VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4910 标注数量(xml文件个数):4910 标注数量(txt文件个数):4910 标注…

JVM面试真题总结(九)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 描述CMS垃圾收集的工作过程 CMS(Concurrent Mark Swee…

牛客练习赛(下)

Cidoai的平均数对 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行代码 #include <iostream> #include <vector> using namespace std; int main() {int n, k;cin >> n >> k;int totalAns 0;int rSum 0;vector<int> ex, weights;for (i…

情感AI:科技赋能情感计算的新时代

一、引言 随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;情感AI&#xff08;Affective AI&#xff09;成为了人工智能领域中的一大热门话题。情感AI&#xff0c;或称情感计算&#xff08;Affective Computing&#xff09;&#xff0c;指的是通过计算机技术…

buildroot移植qt报错Info: creating stash file (补充qt添加字库)

移植qt库&#xff0c;编译文件报错Info: creating stash file /home/rbing/QT/uart/.qmake.stash Project ERROR: Unknown module(s) in QT: serialport rbingouc:~/QT/uart$ /home/rbing/linux/tool/buildroot-2022.02.9/output/host/usr/bin/qmake Info: creating stash fil…

Redis——常用数据类型hash

目录 hash常用命令hsethgethdelhkeyshvalshgetallhmgethlenhsetnxhincrbyhdecrby 哈希的编码方式哈希的应用 hash 常用命令 hset HSET key field value [field value ...]//时间复杂度O(1) //返回值&#xff1a;设置成功的键值对的个数hget HGET key field//hdel HDEL key…

统计/nginx/access.log中每个日志的访问次数,按高到低排列

/nginx/access.log具体内容长这样&#xff1a; 第一个元素就是ip。 awk {print $1} /nginx/access.log | sort | uniq -c | sort -r首先&#xff0c;awk {print $1} /nginx/access.log 从 /nginx/access.log文件的每行中提取出第一个字段。然后&#xff0c;sort 对提取出的第…

【linux-Day3】linux下的基本指令

【linux-Day3】linux下的基本指令 linux下的基本指令&#x1f4e2;man&#xff1a;访问linux手册页&#x1f4e2;echo&#xff1a;把字符串写入指定文件中&#x1f4e2;cat&#xff1a;查看目标文件的内容&#x1f4e2;cp&#xff1a;复制文件或目录&#x1f4e2;mv&#xff1a…

移动剧院:便携与声学结合的创新空间—轻空间

随着现代文化和娱乐需求的多样化&#xff0c;传统剧院形式已经无法完全满足人们的需求。作为创新型建筑解决方案的代表&#xff0c;移动剧院凭借其独特的便携性和卓越的声学效果&#xff0c;成为了各类文化活动、音乐会、戏剧表演等活动的理想场所。 高效搭建&#xff0c;便捷移…

开源链动 2+1 模式、AI 智能名片与 S2B2C 商城小程序:重塑私域微商新生态

摘要&#xff1a;本文深入探讨在私域环境下&#xff0c;微商借助微信平台获客成本近乎白菜价的现象。分析微信发展带来的市场蓝海以及微商作为开荒者的机遇与挑战。引入开源链动 21 模式、AI 智能名片和 S2B2C 商城小程序&#xff0c;阐述其如何为微商带来新的发展机遇&#xf…

SQL server 6.5升级到SQL server 2019的方法

背景&#xff1a; 对日项目&#xff0c;客户的旧系统的数据库用的是SQL server 6.5&#xff0c;操作系统是windows NT。新系统要求升级到SQL server 2019&#xff0c;查了下资料发现旧系统的版本实在是太久远了&#xff0c;90年代的。 数据库部分的升级思路是这样的&#xff…

55页可编辑PPT | 集团制造企业数字化转型顶层设计方案

这份PPT文档是一份关于集团制造企业数字化转型的顶层业务设计方案。文档详细介绍了企业在后ERP时代面临的挑战&#xff0c;以及如何通过Oracle解决方案来实现数字化转型。 数字化转型的三大要点集中在满足利益相关者的期望&#xff0c;以企业价值为核心引领业务模式的创新&…

SpringBoot整合JDBCTemplate(day34)

1 学习目标 了解JDBCTemplate重点掌握JDBCTemplate常用方法重点掌握SpringBoot项目整个JDBCTemplate重点掌握JDBCTemplate的CRUD操作 2 JDBCTemplate介绍 JDBCTemplate是Spring官方提供的&#xff0c;基于jdbc技术访问数据库的一个API对象。此对象基于模板方法模式&#xff…

无人机应用新纪元:图形工作站配置推荐与硬件解析

低空经济作为国家新兴的战略性产业&#xff0c;正逐步成为经济高质量发展的新动力。据统计&#xff0c;2023年中国低空经济规模达到5059.5亿元&#xff0c;增速为33.8%&#xff0c;预计到2026年有望突破万亿元大关。政府对低空经济的发展高度重视&#xff0c;不仅出台了相关法规…

机器学习特征构建与特征筛选

前言 上一篇文章讲述了原始特征分析和处理&#xff0c;保障后续拿到的是干净的特征变量&#xff0c;但实际这些特征对于建模不一定是有效的&#xff0c;所以需要在原始特征的基础上&#xff0c;结合业务场景做特征变量的衍生&#xff0c;提升数据的表达能力。此外&#xff0c;…

【devops】devops-git之git分支与标签使用

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…