HTTPS 从懵懵懂懂到认知清晰、从深度理解到落地实操

news2024/11/19 5:34:54

Https

在现代互联网应用中,网上诈骗、垃圾邮件、数据泄露的现象时有发生。为了数据安全,我们都会选择采用https技术。甚至iOS开发调用接口的时候,必须是https接口,才能调用。现在有部分浏览器也开始强制要求网站必须使用https,网站网页基于https已经势不可挡。https的时代已经到来。

SSL/TLS

TLS(Transport Layer Security) 是 SSL(Secure Socket Layer) 的后续版本

01.准备工作

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

下载OpenSSL

Windows:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

Linux:[ Downloads ] - /source/index.html

安装OpenSSL

Windows安装:

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

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中进行配置

添加信任

在当前系统中安装证书

 如下图解:让你更加清楚的懂它

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

Python(Socket) +Unreal(HTTP)

Python(Socket) Unreal(HTTP) python(Socket):UE:Post请求并发送本机IP 上班咯,好久没记笔记了。。。 局域网 UE的apk,请求Python的Socket 跑起Socket ,UE发 …

长安链共识算法切换:动态调整,灵活可变

#功能发布 长安链3.0正式版发布了多个重点功能,包括共识算法切换、支持java智能合约引擎、支持后量子密码、web3生态兼容等。我们接下来为大家详细介绍新功能的设计、应用与规划。 随着长安链应用愈加成熟与广泛,一些在生产中很实用的需求浮出水面。长安…

RabbitMQ 《简单消息》

package com.xzp.rabbitmq.simple; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.xzp.rabbitmq.util.ConnectionUtil; /** * "Hello World!" * 简单消息 * 消息发送者 - R - 发送消息(生产者) …

nandgame中的汇编语言(Assembler Language)

配置一个汇编器,将符号指令转换为二进制机器码。汇编器指令有三个部分:目标、计算和(可选的)跳转条件。目标是操作的输出写入的寄存器。计算是ALU操作。请参阅ALU级别的位模式。跳转条件是将触发跳转的条件。请参阅条件级别以获取…

初识云原生、虚拟化、DevOps

文章目录 K8S虚拟化DevOpsdevops平台搭建工具大数据架构 K8S master 主节点,控制平台,Master节点负责核心的调度、管理和运维,不需要很高性能,不跑任务,通常一个就行了,也可以开多个主节点来提高集群可用度…

AIGC工具系列之——基于OpenAI的GPT大模型搭建自己的AIGC工具

今天我们来讲讲目前非常火的人工智能话题“AIGC”,以及怎么使用目前的AI技术来开发,构建自己的AIGC工具 什么是AIGC? AIGC它的英文全称为(Artificial Intelligence Generated Content),中文翻译过来就是“人工智能生成内容”&…

v4l2采集视频

Video4Linux2(v4l2)是用于Linux系统的视频设备驱动框架,它允许用户空间应用程序直接与视频设备(如摄像头、视频采集卡等)进行交互。 linux系统下一切皆文件,对视频设备的操作就像对文件的操作一样&#xff…

C语言------指针(2)

前面已经向大家介绍了指针的一些基本内容,接下来,就在再我来先大家讲解一下指针的其他内容。 1. 数组名的理解 int arr[10] { 1,2,3,4,5,6,7,8,9,10 }; 在学习数组的过程中,我们肯定会写过以上代码,我们知道 int 是该数组的数…

[BT]BUUCTF刷题第8天(3.26)

第8天 Web [CISCN2019 华北赛区 Day2 Web1]Hack World 题目明确提示flag在flag表里的flag列,这里先尝试1 返回:你好,glzjin想要一个女朋友。 再尝试1,返回bool(false) 到这里就感觉是布尔盲注的题目类型了(虽然我没…

GPT提示词分享 —— 代码释义者

提示词👇 我希望你能充当代码解释者,阐明代码的语法和语义。 3.5版本👇 free2gpt 4.0版本👇 gpt4

深入解析快速排序算法

深入解析快速排序算法 一、快速排序算法简介二、快速排序算法过程三、快速排序算法示例四、快速排序算法分析1. 时间复杂度:2. 空间复杂度:3. 稳定性: 五、快速排序算法优化1. 优化基准元素的选择:2. 优化小数组的排序&#xff1a…

[HackMyVM]靶场Crossbow

kali:192.168.56.104 靶机:192.168.56.136 端口扫描 # nmap 192.168.56.136 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-26 22:17 CST Nmap scan report for crossbow.hmv (192.168.56.136) Host is up (0.0057s latency). Not shown: 997 closed tcp…

Spring IOC 容器循环依赖解决(三级缓存)

对于循环依赖的解决,首先得了解Spring IOC 容器的创建过程,在加载过程中,Bean 的实例化和初始化是分开的,所以在解决循环依赖的问题时,也是基于Bean 的实例化和初始化分开执行这一特点。 我们将实例化后的Bean 叫 半成…

2024中国闪存市场观察:AI助推闪存全面起势?

过去两年,闪存市场一直处于低迷状态,但去年第四季度闪存颗粒资源的上涨,导致闪存产品价格一路上扬,市场遂发生反转。 2024年,中国闪存市场会彻底走向复苏,还是急转直下?中国AI热潮,…

JavaScript原型、原型对象、原型链系列详解(五)

(五)、JavaScript原型设计模式 什么是JavaScript原型设计模式? 为什么要使用JavaScript原型设计模式? JavaScript原型设计模式的实现方法有哪些? JavaScript原型设计模式的应用场景是什么? 什么是JavaScript原型设计模式&#xff…

Raft 共识算法

什么是木筏? Raft 是一种共识算法,旨在易于理解。它 在容错和性能方面与Paxos相当。不同之处在于 它被分解成相对独立的子问题,而且它干净利落 解决了实际系统所需的所有主要部分。我们希望 Raft 能使 更广泛的受众可以达成共识,并…

【网站项目】303老年人的景区订票系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

主流公链 - Cosmos

探索Cosmos区块链:构建互联的区块链网络 1. Cosmos简介 Cosmos是一个开放的区块链互联协议,旨在解决区块链之间的孤立性问题。它的愿景是构建一个可以互相通信和互操作的区块链网络,实现资产和数据的流动性。在Cosmos中,不同的区…

langchain调用语言模型chatglm4从智谱AI

目录 ​0.langchain agent 原理 ReAct 1.langchain agent使用chatgpt调用tools的源代码 2.自定义本地语言模型的代码 3.其他加速方法 背景:如果使用openai的chatgpt4进行语言问答,是需要从国内到国外的一个客户请求-->openai服务器response的一个…

使用Nginx1.25.4版本做负载均衡、搭建Nacos2.3.0服务集群

关于使用版本问题上,其实小白更喜欢使用新的版本,因为新的版本功能更多,肯定优化方面不言而喻,懂得都懂,但是新的版本,肯定使用起来更加的速度,性能,也是不言而喻的啊,那…