OpenSSL生成自签名证书

生成之前首先需要明白以下内容:

在这里插入图片描述
第三点的验证数字签名解释下:客户端将使用颁发机构的公钥解密得到的原始数据,再将原始数据通过哈希算法计算得到的哈希值(此处应该是使用CA证书提供的哈希算法)进行比对。如果两者一致,就表明数字签名有效且证书未被篡改;如果不一致,则数字签名无效或者证书已经被篡改。

自签名证书是指由用户自己生成和签名的证书,而不是由公认的证书颁发机构(如VeriSign或Let’s
Encrypt)签名的证书。自签名证书是免费的,但通常不受浏览器和其他客户端的信任。

私有CA签发的证书和自签名证书区别
私有CA签发的证书:在这种情况下,用户不仅生成自己的证书,还创建了自己的CA,然后使用该CA签名其证书。这意味着用户有自己的证书颁发机构环境,可以用于签名多个证书。
自签名证书:在这种情况下,用户只是为自己创建和签名一个证书,而没有创建CA。这个证书是单独存在的,不依赖于任何CA机构。

key 私钥 = 明文–自己生成(genrsa )
csr 证书签名请求文件(包含了用于签发证书的公钥、用于辨识的名称信息) = 由私钥生成
crt 证书 = 公钥 +签名(自签名或者由CA签名)
证书:server.crt文件就是证书
签名:使用私钥key与公钥进行证书server.crt生成的过程称为签名

还有一种是https双向验证,即生成ca证书、使用CA分别签名生成服务端证书、客户端证书,服务端(nginx、apache)配置需要验证客户端证书

生成key 私钥sudo openssl genrsa -out server.key 1024

生成csr证书签名请求文件sudo openssl req -new -key server.key -out server.csr

新建个cert.ext扩展文件(不做此步会导致客户端安装证书之后一直提示NET::ERR_CERT_COMMON_NAME_INVALID-它的安全证书没有指定主题备用名称。不知道是否因为自签IP证书的原因,域名不知道是否可以,有知道的小伙伴可以评论下)

----更新:提示ERR的原因是生成证书的时候没有加上备用名称字段,目前的浏览器校验证书都需要这个备用名称(subjectAltName)扩展字段
如果多个域名,可以按照规律DNS.1/DNS.2/DNS.3/…来添加,同时还支持IP地址的形式,填入IP.1 = x.x.x.x就可以了。

keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName
 
[SubjectAlternativeName]
IP.1=192.168.50.xxx

生成证书(执行之后会提示让填信息,前面信息随便填,最后的common name最好是填IP/域名)sudo openssl x509 -req -days 3650 -extfile cert.ext -in /etc/pki/tls/private/server.csr -signkey /etc/pki/tls/private/server.key -out server.crt

这里举例使用私有ca签发:openssl x509 -req -sha256 -in server-csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server-crt
openssl x509: 表示要生成一个 X.509 格式的证书。
-req: 表示这是一个证书签名请求(CSR)。
-sha256: 表示使用 SHA-256 算法对 CSR 进行签名。
-in server-csr: 表示输入的证书签名请求文件是 server-csr。
-CA ca.crt: 用于指定用于签署证书请求的证书文件,即 CA 证书。这是必需的,因为它定义了签名证书的颁发者(CA),并提供了包含 CA 公钥的证书链(不知道是放了什么东西在crt里面,这里有点迷,有知道的小伙伴可以评论下)
-CAkey ca.key: 表示使用名为 ca.key 的 CA 密钥进行签名。
-CAcreateserial: 表示在生成证书时,由 CA 自动创建一个新的序列号。
-days 3650: 表示生成的证书有效期为 3650 天。
-out server-crt: 表示输出的证书文件名为 server-crt。
在这里插入图片描述

可以把 CA 的角色比喻为一个“权威”,ca.crt 就像是守护者手中的一把“钥匙”,用来验证其他人所持有的“证书”是否受到权威的认可。而
ca.key 则类似于权威的“印章”,只有权威才有权力使用这个印章,用来对其他人的文件或请求进行签名,并赋予其权威的认可和信任。

上面就生成完不带CA的自签名证书了,我这边主要用于apache+svn的https配置,因此多做以下步骤
sudo vi /etc/httpd/conf.d/ssl.conf
sudo /etc/init.d/httpd restart

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

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

相关文章

2022最新版-李宏毅机器学习深度学习课程-P46 自监督学习Self-supervised Learning(BERT)

一、概述:自监督学习模型与芝麻街 参数量 ELMO:94MBERT:340MGPT-2:1542MMegatron:8BT5:11BTuring NLG:17BGPT-3:175BSwitch Transformer:1.6T 二、Self-supervised Lear…

云计算:无所不能的超级英雄

引言 在这个奇妙的时代,云计算如同一位无所不能的超级英雄,无处不在。从智能家居到无人驾驶,从虚拟现实到人工智能,云计算为我们的生活带来了智能、便捷和有趣。它以其强大的能力和灵活性,令我们的生活变得更加智能化…

库存预占架构升级方案设计-交易库存中心

背景介绍  伴随物流行业的迅猛发展,一体化供应链模式的落地,对系统吞吐、系统稳定发出巨大挑战,库存作为供应链的重中之重表现更为明显。近三年数据可以看出:  接入商家同比增长37.64%、货…

rviz添加qt插件

一、增加rviz plugin插件 资料:http://admin.guyuehome.com/42336 https://blog.51cto.com/u_13625033/6126970 这部分代码只是将上面两个链接中的代码整合在了一起,整合在一起后可以更好的理解其中的关系 1、创建软件包 catkin_create_pkg rviz_tel…

css呼吸效果实现

实现一个图片有规律的大小变化,呈现呼吸效果,怎么用CSS实现这个呼吸效果呢 一.实现 CSS实现动态效果可以使用动画( animation)来属性实现,放大缩小效果可以用transform: scale来实现,在这基础上有了动画,就可以设置一个…

每日汇评:黄金将测试1935美元的200日移动均线

金价在美联储主席鲍威尔发表讲话之前仍然脆弱; 在市场情绪喜忧参半的情况下,美元与美债收益率走势艰难; 在上升的三角形破裂和看跌的相对强弱指数中,黄金价格看向200日移动均线; 黄金周四早时在略低于1950美元的三周…

访问者模式

详情可参考:https://zhuanlan.zhihu.com/p/380161731 意图:主要将数据结构与数据操作分离。 适用于:系统中有稳定的数据结构,且数据结构的功能经常发生变化。 双分派:我的理解是两次多态操作,动态获取对象…

mysql的备份和恢复

备份:完全备份 增量备份 完全备份:将整个数据库完整的进行备份 增量备份:在完全备份的基础之上,对后续新增的内容进行备份 备份的需求 1、在生产环境中,数据的安全至关重要,任何数据的都可能产生非常严重…

PHP保存时自动删除末尾的空格,phpstorm自动删除空白字符串

最近有个活儿,修改一个财务软件。 修改后给客户验收的过程中,客户反应有一个txt表格导出功能不能用了。之前是好的。 这次是新增,老的这个功能碰都没碰过,怎么能有问题呢?我心里OS 下班后我立马用系统导出TXT&#…

如何实现Debian工控电脑USB接口安全管控

Debian 作为工控电脑操作系统具有稳定性、安全性、自定义性和丰富的软件包等优势,适用于要求高度可靠性和安全性的工控应用。 Debian 作为工控电脑操作系统在工业控制领域有很大优势,包括: 稳定性:Debian 的发布版以其稳定性而闻…

ThinkPHP框架 开源 虚拟资源分享付费下载PHP网站源码

源码测评:非常不错的资源分享网站,仿的是之前的码农网,这个网站也是在码农网的源码基础上修改而来,这个是用ThinkPHP仿的,还不错,测试的时候发现后台上传图片报错,其他暂时没有发现。 转载自…

Leetcode刷题【hot100】盛最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例…

OpenAI 工程师平均薪酬 92.5 万美元;SpaceX 明年将每两天发射一次丨 RTE 开发者日报 Vol.81

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

【爬虫与反爬虫】从技术手段与原理深度分析

文章目录 1. 爬虫的基本概念1.1. 什么是爬虫1.2. 爬虫的价值1.3. 爬虫的分类 3. 爬虫技术原理与实现4. 反爬虫基本概念4.1. 什么是反爬虫4.2. 反爬虫的目的4.3. 反什么样的爬虫 5. 由浅到深的反爬虫技术手段5.1. 主动常见型反爬虫5.1.1. 基于爬虫行为5.1.2. 基于身份识别 6. 被…

Banana Pi BPI-M6(Raspberry Pi 5 替代品)初始设置及固件烧录

Banana Pi BPI-M6:初始设置和镜像烧录 Banana Pi BPI-M6 的首次测试 在上一篇文章中,我比较了Banana Pi BPI-M6和Raspberry Pi 5的硬件特性。两者都拥有出色的硬件技术,在性能方面应该不会有太大的问题。 今天我想测试一下 Banana Pi。作为…

Zabbix“专家坐诊”第210期问答汇总

问题一 Q:zabbix触发器条件基于历史趋势的函数有示例吗?还有这些基于历史趋势的函数,具体是读取历史表还是趋势表? A:读历史表,示例可以看看官网的。 https://www.bookstack.cn/read/zabbix-5.0-zh/37cf0…

Qt实现自定义多选下拉列表

目录 前言1、 功能描述2、代码实现总结 前言 本文记录了一种通过继承 QComboBox 实现下拉列表多选功能的方法。效果如下图所示: 1、 功能描述 普通的下拉列表只支持选择一个选项,在软件开发过程中,经常会遇到下拉列表支持选择多个选项的需…

网络原理---拿捏网络层:IP协议

文章目录 IP协议4位版本4位首部长度、选项8位服务类型(TOS)16位总长度16位标识、3位标志、13位片偏移8位生存时间(TTL)8位协议16位首部校验和32位源IP地址、32位目的IP地址解决IP地址不够用的问题动态分配IP地址NAT机制&#xff0…

RPA处理重复工作,助力高效资金管理

在瞬息万变的市场竞争中,众多企业开展多元化经营以获取最大的经济效益。然而,企业的多元化经营程度越高,协调活动可能造成的决策延误也越多,其资金管理往往将面临更大的考验。随着新技术的发展,更多具备多元产业的企业…

关于卷积神经网络的填充(padding)

认识填充 (padding) 随着卷积层数的加深,输出进一步缩小,那么最终会导致输出很快就只剩下1∗1的数组,这也就没办法继续计算了,所以提出了填充的方法来方便网络的进一步加深。 其实填充的原因有两点&#xf…