使用openssl创建https证书

原文地址:使用openssl创建https证书-腾讯云开发者社区-腾讯云

从今天开始笔者打算和大家聊一聊http2这个协议,想要说清楚http2协议就必须亲手搭建一个http2的服务,并且对比http2和http1.1的特点,从而了解http2的一些新特性。

http2服务是建立在TSL/SSL基础之上的,类似于https,所以咱们先要搞清楚如何搭建一个https服务器,搭建https服务器的话就需要https证书,证书从哪里来呢?可以去阿里云买个域名,获得免费赠送的证书,也可以去https厂商那里申请收费证书,也可以用openssl这个工具自己生成证书。

写完上面这段感觉程序员好难,要搞懂一个东西通常要追根溯源,刨根问底,越刨坑越深,然后就掉坑里了,然后再自我救赎。

说了这么多,这里还有一个前置知识就是https的原理,如果你不是很清楚或者不明白,请查看这两篇文章白话https原理和nginx如何配置https证书。

如果你已经看了前面两篇文章,或者大致了解https,那么我们正式开始今天的主题,如何用openssl这个玩意生成证书呢?

先上一张图,这张图就是用openssl生成证书的整个流程了,如何看这个图呢?

这个图有A、B、C三个部分,分别用三种颜色框选了一下(给小编加鸡腿?),A部分是CA机构根证书的生成过程,这个过程需要先生成CA机构的私钥,再由CA机构的私钥生成CA机构证书申请文件,然后再由这两个文件生成根证书。

B部分是生成服务器私钥,然后由服务器私钥生成服务器证书申请文件。

C部分是最后一部分,也就是生成服务器的公钥证书,服务器的公钥证书需要三部分一起来生成,A部分的CA机构的私钥,CA机构的申请证书文件,B部分的服务器证书申请文件,这三部分一起来生成服务器的公钥证书。

根据图示,分为如下几个步骤:

1、生成服务器私钥。

openssl genrsa -out server.key 1024

2、根据服务器私钥文件生成证书请求文件,这个文件中会包含申请人的一些信息,所以执行下面这行命令过程中需要用户在命令行输入一些用户信息,随便填写,一路回车即可。

openssl req -new -key server.key -out server.csr

3、生成CA机构的私钥,命令和生成服务器私钥一样,只不过这是CA的私钥

openssl genrsa -out ca.key 1024

4、生成CA机构自己的证书申请文件

openssl req -new -key ca.key -out ca.csr

5、生成自签名证书,CA机构用自己的私钥和证书申请文件生成自己签名的证书,俗称自签名证书,这里可以理解为根证书。

openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

6、根据CA机构的自签名证书ca.crt或者叫根证书生CA机构的私钥ca.key服务器的证书申请文件server.csr生成服务端证书。

openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

上面的过程其实是模拟了各大https证书厂商生成https证书的过程,其中涉及到了根证书等等一些概念,如果你不是太明白也没有关系,我们还有B方案,我只想要证书,不想搞得太深,那么请使用如下方法,简便快捷。

只需要三步:

第一步,生成服务器私钥:

openssl genrsa -out server.key 1024

第二步,根据私钥和输入的信息生成证书请求文件:

openssl req -new -key server.key -out server.csr

第三步:用第一步的私钥和第二步的请求文件生成证书:

openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650

这样我们就拿到了私钥server.key和证书server.crt。

为什么第二种方式比第一种简单并且步骤还少呢?这里简单介绍一下,第一种方式是模拟https厂商生成https证书的简易过程,https证书厂商一般都会有一个根证书,这里我们模拟生成了https厂商根证书,也就是第一种方法的3、4、5步骤。

在实际应用中,这些步骤对用户来说是不可见的,这里只是简单模拟,通常证书申请用户只需要将服务器的公钥(注意不是私钥)和服务器证书申请文件交给https证书厂商即可,之后https厂商会通过邮件回复一个服务器公钥证书,拿到这个证书和自己生成的服务器私钥就可以搭建https应用了。

第二种方法比较简单,是因为我们自己生成证书在本地测试,我们既是https厂商的角色也是用户角色,我们直接用自签名证书当做服务器证书就可以了,简单快捷,不过这里只适用于测试。

总结一下:

1、本篇文章简单将http2的知识路径图梳理一下,要了解http2,就要搭建http2服务,搭建http2服务,就要了解如何搭建https服务,要了解https服务如何搭建,就要了解https的原理和如何获取证书,今天讲的就是如何获取证书。

2、今天的主要知识点是如何用openssl生成https证书的两种方法,第一种方法是模拟https厂商的生成https证书的一个简单流程,第二种方法是简化版,适合做本地测试。

下期我们用这次生成的http送证书搭建一个https服务。

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

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

相关文章

产品专访|“产品”远程运维系统与“设备”远程运维系统的区别?

在日益复杂的工业制造环境下,远程运维已经成为生产制造企业不可或缺的一部分。在这个大背景下,产品远程运维系统和设备远程运维系统的需求越来越多,各自发挥着独特的作用。然而,尽管它们都涉及到远程运维的概念,但在实…

windows系统远程执行脚本部署项目操作手册

windows系统远程执行脚本部署项目操作手册 windows系统远程执行脚本部署项目 如果频繁的需要部署项目到远程的服务器上,每次要手动上传项目,然后停止项目,启动项目,很麻烦,像Linux天生支持远程执行脚本 Windows借助工具也可以做到. 安装WinSCP软件 自行下载软件或关注我的公…

linux学习:音视频编程+alsa声音架构

目录 概念 采样 量化 编码 音频文件wav 格式 标准音频接口 ALSA 录制音频 步骤 api 获取pcm设备句柄 设置 PCM 设备参数 代码 播放音频 步骤 代码 概念 信号都是模拟信号,不管是声音还是光线,这些模拟信号需要被 A/D 转换器转换成数字信…

LeetCode:盛最多水的容器

文章收录于LeetCode专栏 盛最多水的容器 给你n个非负整数a1,a2,…,an,每个数代表坐标中的一个点(i, ai) 。在坐标内画 n 条垂直线,垂直线i的两个端点分别为(i, ai) 和 (i, 0)。找出其中的两条线,使得它们与…

24上半年软考时间安排已出!

正在备考上半年软考考试的宝子们注意啦~ 软考官网已经发布了24上半年考试时间及科目安排,大家仔细查看,确认好考试时间,以防错过考试。 添加图片注释,不超过 140 字(可选) 通知原文如下:↓↓↓…

利用 MyNodeQuery 搭建三网延迟监控 实时监控 VPS 网络情况

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 MyNodeQuery 是一款简洁好用的探针,可以作为 NodeQuery 关闭后的替代品,功能也基本参照 NodeQuery,支持节点离线通知、节点排序、自定义 Ping 节点,还有网速…

关于YOLO8学习(六)安卓部署ncnn模型--图片检测

前文 关于YOLO8学习(一)环境搭建,官方检测模型部署到手机 关于YOLO8学习(二)数据集收集,处理 关于YOLO8学习(三)训练自定义的数据集 关于YOLO8学习(四)模型转换为ncnn 关于YOLO8学习(五)安卓部署ncnn模型–视频检测 简介 前文第五章,讲述了部署自定义模型后,进…

【牛客】Tokitsukaze and Average of Substring

原题链接:登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 前缀和。 开一个int类型的前缀和数组pre[30][N](pre[i][j]表示某字符转成的数字 i 在一段区间的前缀个数。因为字母表有‘a’~z…

Nessus 部署实验

一、下载安装https://www.tenable.com/downloads/nessus 安装好之后,Nessus会自动打开浏览器,进入到初始化选择安装界面,这里我们要选择 Managed Scanner 点击继续,下一步选择Tenable.sc 点击继续,设置用户名和密码 等…

HSP_06章_Python_函数

文章目录 P67 函数入门1. 基本语法2. 函数的调用3. 函数的注意事项和使用细节 P71 递归机制1. 基本介绍2.递归能解决什么问题3. 递归的重要规则 P72 函数作为参数传递P73 lambda匿名函数P74 全局变量和局部变量 P67 函数入门 1. 基本语法 2. 函数的调用 3. 函数的注意事项和使…

浅谈操作系统中的重要概念——线程(3)——设计模式

文章目录 一、什么是设计模式?二、单例模式2.1、饿汉模式2.2、懒汉模式2.3、多线程情况下调用 饿汉模式与懒汉模式 谁是安全的??(重点) 三、工厂模式 一、什么是设计模式? 设计模式就相当于菜谱&#xff0…

虚拟机文件夹共享操作(本地访问)

新建一个文件夹 右击文件夹点击属性 找到共享 点击共享 选择本地用户共享就可以了 本地winr 输入我们图片中的格式(IP前加 “\\” ) 会弹一个窗口,输入虚拟机的入户名和密码就可以共享了(一般默认用户名都是administrator&am…

C++笔记:类与对象(三)->多态

多态 虚函数 先来看一段代码&#xff1a; #include<iostream> using namespace std;class Animal { public :void run() {cout << "I dont know how to run" << endl;} };class Cat : public Animal{ public :void run() {cout << "I …

【毕业设计】基于微信小程序的校园快递平台系统设计与实现

1.项目介绍 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统校园快递平台系统信息管理难度大&#xff0c;容错率…

让我们把Domino变成SFTP服务器

大家好&#xff0c;才是真的好。 远程共享文件有很多办法&#xff0c;其中值得注意的是SFTP方式。SFTP即SSH文件传输协议&#xff0c;通过使用SSH传输层&#xff0c;SFTP可以通过Internet连接安全地访问和移动大量数据文件。 今天我们就介绍使用Domino中的HTTP OSGI方式来实现…

如何自己快速的制作流程图?6个软件教你快速进行流程图制作

如何自己快速的制作流程图&#xff1f;6个软件教你快速进行流程图制作 自己制作流程图可以是项目管理、流程设计或教学展示中的重要环节。以下是六款常用的流程图制作软件&#xff0c;它们都提供了快速、简单的方式来制作流程图&#xff1a; 迅捷画图&#xff1a;这是一款非…

echarts学习笔记:柱状图+雷达图+双环形图+地图可视化+数据传递关系图+关键词条图+数据总览图+AntV/G2/DataV

GitHub - lgd8981289/imooc-visualization: https://www.bilibili.com/video/BV1yu411E7cm/?vd_source391a8dc379e0da60c77490e3221f097a 课程源码 国内echarts镜像站&#xff1a;ISQQW.COM x ECharts 文档&#xff08;国内同步镜像&#xff09; - 配置项 echarts图表集&…

618挑选家用洗地机,需要注意哪些事项?有哪些家用洗地机值得买?

近年来&#xff0c;智能清洁家电越来越受到消费者的欢迎&#xff0c;洗地机作为清洁家电的新宠&#xff0c;凭借其集扫地、拖地、杀菌清洗于一体的强大功能&#xff0c;成为市场上的热销产品。那么&#xff0c;这类洗地机真的好用吗&#xff1f;怎么挑选到好用的家用的洗地机呢…

win10下,svn上传.so文件失败

问题&#xff1a;win10下使用TortoiseSVN&#xff0c;svn上传.so文件失败 解决&#xff1a;右键&#xff0c;选择Settings&#xff0c;Global ignore pattern中删除*.so&#xff0c;保存即可。

设置多用户远程登录windows server服务器

##设置多用户远程登录windows server服务器 ###1、远程登录windows server 2016 运行—>mstsc—>远程IP地址—>用户和密码 2、远程windows服务器设置多用户策略 运行—>gpedit.msc->计算机配置—管理模板—windows组件—远程桌面服务—远程桌面会话主机----连…