openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证
1. 生成根证书
1.1 生成CA证书私钥
openssl genrsa -aes256 -out ca.key 2048
1.2 取消密钥的密码保护
openssl rsa -in ca.key -out ca.key
1.3 生成根证书签发申请文件(csr文件)
openssl req -new -sha256 -key ca.key -out ca.csr -subj "/C=CN/ST=FJ/L=XM/O=NONE/OU=NONE/CN=localhost/emailAddress=test@test.com"
上述参数含义
-
req----执行证书签发命令
-
-new----新证书签发请求
-
-key----指定私钥路径
-
-out----输出的csr文件的路径
-
C-----国家(Country Name)
-
ST----省份(State or Province Name)
-
L----城市(Locality Name)
-
O----公司(Organization Name)
-
OU----部门(Organizational Unit Name)
-
CN----产品名(Common Name)
-
emailAddress----邮箱(Email Address)
1.4 生成自签发根证书(cer文件)
openssl x509 -req -days 36500 -sha256 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer
上述参数含义
- x509----生成x509格式证书
- -req----输入csr文件
- -days----证书的有效期(天)
- -signkey----签发证书的私钥
- -in----要输入的csr文件
- -out----输出的cer证书文件
2. 生成服务端证书
2.1 生成服务端私钥
openssl genrsa -aes256 -out server.key 2048
2.2 取消密钥的密码保护
openssl rsa -in server.key -out server.key
2.3 生成服务端签发申请文件(csr文件)
openssl req -new -sha256 -key server.key -out server.csr -subj "/C=CN/ST=FJ/L=XM/O=NONE/OU=NONE/CN=localhost/emailAddress=test@test.com"
2.4 使用CA证书签署服务器证书
openssl x509 -req -days 36500 -sha256 -extensions v3_req -CA ca.cer -CAkey ca.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.cer
上述参数含义
- -CA----指定CA证书的路径
- -CAkey----指定CA证书的私钥路径
- -CAserial----指定证书序列号文件的路径
- -CAcreateserial----表示创建证书序列号文件(即上方提到的serial文件),创建的序列号文件默认名称为-CA,指定的证书名称后加上.srl后缀
3. 生成客户端证书
3.1 生成客户端私钥
openssl genrsa -aes256 -out client.key 2048
3.2 取消密钥的密码保护
openssl rsa -in client.key -out client.key
3.3 生成客户端端签发申请文件(csr文件)
openssl req -new -sha256 -key client.key -out client.csr -subj "/C=CN/ST=FJ/L=XM/O=NONE/OU=NONE/CN=localhost/emailAddress=test@test.com"
3.4 使用CA证书签署客户端器证书
openssl x509 -req -days 36500 -sha256 -extensions v3_req -CA ca.cer -CAkey ca.key -CAserial ca.srl -CAcreateserial -in client.csr -out client.cer
4. 单向认证测试
4.1 服务端启动服务
openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 44444
4.2 客户端连接
openssl s_client -CAfile ca.cer -cert client.cer -key client.key -host 127.0.0.1 -port 44444
5. 双向认证测试
5.1 服务端启动服务
openssl s_server -CAfile ca.cer -cert server.cer -key server.key -accept 44444 -Verify 1
5.2 客户端连接
openssl s_client -CAfile ca.cer -cert server.cer -key server.key -cert client.cer -key client.key -host 127.0.0.1 -port 44444
相关文章:
openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证
1. 生成根证书 1.1 生成CA证书私钥 openssl genrsa -aes256 -out ca.key 2048 1.2 取消密钥的密码保护 openssl rsa -in ca.key -out ca.key 1.3 生成根证书签发申请文件(csr文件) openssl req -new -sha256 -key ca.key -out ca.csr -subj "/CCN/STFJ/LXM/ONONE/OU…...
NIO Selector简介
1.Selector和Channel关系 Selector一般称为选择器,也叫多路复用器,NIO的核心组件,用于检查一个或多个Channel的状态是否处于可读、可写的状态。 2.可选择通道 (1)不是所有的channel都能被selector复用,…...
2023-12蓝桥杯STEMA考试 C++ 中高级试卷解析
蓝桥杯STEMA考试 C++ 中高级试卷(12月) 一、选择题 第一题 定义字符串 string a = "Hello C++",下列选项可以获取到字符 C 的是(B)。 A、a[7] B、a[6] C、a[5] D、a[4] 第二题 下列选项中数值与其它项不同的是( C)。 A、 B、 C、 D、 第三题 定义变量 int i =…...
设计模式——2_1 命令(Command)
文章目录 定义图纸一个例子:空调和他的遥控器只有控制面板的空调遥控器可以撤销的操作 碎碎念命令和Runnable命令和事务 定义 把请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持…...
HP数组面试题
PHP数组面试题 问题: 如何创建一个空数组和一个带有初始值的数组? 答案: 创建空数组:可以使用array()函数或空数组语法[]来创建一个空数组,例如$arr array();或$arr [];。创建带有初始值的数组:可以在创建…...
机器学习5-线性回归之损失函数
在线性回归中,我们通常使用最小二乘法(Ordinary Least Squares, OLS)来求解损失函数。线性回归的目标是找到一条直线,使得预测值与实际值的平方差最小化。 假设有数据集 其中 是输入特征, 是对应的输出。 线性回归的…...
vulhub中Adminer ElasticSearch 和 ClickHouse 错误页面SSRF漏洞复现(CVE-2021-21311)
Adminer是一个PHP编写的开源数据库管理工具,支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。 在其4.0.0到4.7.9版本之间,连接 ElasticSearch 和 ClickHouse 数据库时存在一处服务端请求伪造漏洞(…...
浅谈Zookeeper及windows下详细安装步骤
1. Zookeeper介绍 1.1 分布式系统面临的问题 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 面临的问题:系统每个节点之间信息同步及共享 以一个小团队为例,面临的问题 通过网络进行信息…...
vite, vue3, vue-router, vuex, ES6学习日记
学习使用vitevue3的所遇问题总结(2024年2月1日) 组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来,导致使用不了,出现以下报错 这是因为,如果不用setup,就得使用 export default…...
25考研|660/880/1000/1800全年带刷计划
作为一个参加过两次研究生考试的老学姐,我觉得考研数学的难度完全取决于你自己 我自己就是一个很好的例子 21年数学题目是公认的简单,那一年考130的很多,但是我那一年只考了87分。但是22年又都说是有史以来最难的一年,和20年的难度…...
Mybatis基础教程及使用细节
本篇主要对Mybatis基础使用进行总结,包括Mybatis的基础操作,使用注解进行增删改查的练习;详细介绍xml映射文件配置过程并且使用xml映射文件进行动态sql语句进行条件查询;为了简化java开发提高效率,介绍一下依赖&#x…...
10 分钟在K8s 中部署轻量级日志系统 Loki
转载至我的博客 https://www.infrastack.cn ,公众号:架构成长指南 Loki 是什么? Loki是由Grafana Labs开源的一个水平可扩展、高可用性,多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中&#x…...
图像处理python基础
array 读取图片 tensor 模型预测 一般过程:读取数据np->tensor->model->result->np->画图 shape确保图像输入输出尺寸正确 读取图片 将在GPU上运行的tensor类型转变成在CPU上运行的np类型 三类计算机视觉任务的输入: 分类࿱…...
基于WordPress开发微信小程序2:决定开发一个wordpress主题
上一篇:基于WordPress开发微信小程序1:搭建Wordpress-CSDN博客 很快发现一个问题,如果使用别人的主题模板,多多少少存在麻烦,所以一咬牙,决定自己开发一个主题模板,并且开源在gitee上ÿ…...
[Python] 什么是网格搜索以及scikit-learn中GridSearch类的介绍和使用案例?
什么是网格搜索? 网格搜索是一种参数调优的方法,它可以帮助找到最佳的模型参数。在网格搜索中,我们先指定参数的候选值范围,然后枚举所有可能的参数组合,计算每个模型的性能指标(比如准确率、精确率等&…...
Linux-正则表达式
1.正则表达式的定义: 正则表达式通常用于判断语句中,使用字符串描述、匹配一系列符合某个规则的字符串。 正则表达式是由普通字符与元字符组成。 普通字符包括小写字母、数字、标点符号及一些其他符号。元字符是指在正则表达式中具有特殊意义的专用字符&…...
Java基础学习:System类和Static方法的实际使用
一、System类 1.在程序开发中,我们需要对这个运行的结果进行检验跟我们预判的结果是否一致,就会用到打印结果在控制台中显示出来使用到了System类。System类定义了一些和系统相关的属性和方法,它的属性和方法都是属于静态的,想使用…...
线性代数------矩阵的运算和逆矩阵
矩阵VS行列式 矩阵是一个数表,而行列式是一个具体的数; 矩阵是使用大写字母表示,行列式是使用类似绝对值的两个竖杠; 矩阵的行数可以不等于列数,但是行列式的行数等于列数; 1.矩阵的数乘就是矩阵的每个…...
Flutter 开发3:创建第一个Flutter应用
Step 1: 安装Flutter 1.1 下载Flutter SDK 首先,你需要访问Flutter官方网站下载最新的Flutter SDK。选择适合你操作系统的安装包。 $ cd ~/development $ unzip ~/Downloads/flutter_macos_2.2.3-stable.zip1.2 更新环境变量 接下来,你需要将Flutter…...
Linux中断下半部分:软中断,tasklet和工作队列
为什么要有下半部分 中断会打断其他程序,为了打断其他程序时间短,就需要中断处理程序快。执行中断处理程序后,相同中断不会触发,甚至所有中断都不能触发(设置IRQF_DISABLED,其他硬件与操作系统无法通信)中…...
AI创业,已经没有“出海”这个词了丨量子位沙龙
邓思邈 发自 凹非寺量子位 | 公众号 QbitAIAI创业,已经没有“出海”这个词了。如果你的计划还是“国内卷完再转战海外”,对不起,你可能已经提前出局。在这一波AI浪潮里,Day 0即全球化,早已是圈内默认的入场券。然而&am…...
2026年10款高效AI写小说软件全面测评,快速解决卡文与大纲难题(含实测体验)
经常有新人问我:现在ai写小说到底靠不靠谱?是不是生成的都是没有感情的机器味? 说实话,前两年我觉得不行,但到了2026年,如果你还不会用AI辅助,真的会比别人慢半个身位。从灵感枯竭到大纲崩坏&a…...
苹果手机用微信,这 8 个设置赶紧关!隐私正在泄露
文章目录前言第一道门:别让陌生人在你家门口"数地砖"第二道门:给你的手机号穿上"隐身衣"第三道门:清理那些"寄生"在你账号上的第三方第四道门:关掉"附近的人",拒绝被"雷…...
猫抓浏览器扩展:轻松获取网页媒体资源的终极指南
猫抓浏览器扩展:轻松获取网页媒体资源的终极指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法下载网页视频而烦恼吗&…...
用Anything to RealCharacters为游戏角色“拍照”:生成高质感真人定妆照
用Anything to RealCharacters为游戏角色"拍照":生成高质感真人定妆照 1. 引言:游戏角色的"数字摄影棚" 想象一下,你精心设计的游戏角色突然从屏幕里走出来,站在真实的摄影棚中,专业的灯光打在他…...
EdB Prepare Carefully完整教程:3步打造完美RimWorld开局体验
EdB Prepare Carefully完整教程:3步打造完美RimWorld开局体验 【免费下载链接】EdBPrepareCarefully EdB Prepare Carefully, a RimWorld mod 项目地址: https://gitcode.com/gh_mirrors/ed/EdBPrepareCarefully 还在为RimWorld随机生成的"废柴"殖…...
稳定性与生态性的平衡:Windows 11 LTSC系统微软商店完整解决方案
稳定性与生态性的平衡:Windows 11 LTSC系统微软商店完整解决方案 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore Windows 11 LTSC…...
零代码文本分类:AI万能分类器WebUI,3步实现智能打标系统
零代码文本分类:AI万能分类器WebUI,3步实现智能打标系统 1. 引言:告别传统分类的繁琐流程 在信息处理领域,文本分类一直是个高频需求。无论是电商平台的商品评论分析,还是客服系统的工单归类,传统方法都需…...
ILI9342_T4驱动库:Teensy 4.x高性能LCD显示后端
1. 项目概述 ILI9342_T4 是一款专为 Teensy 4、Teensy 4.1 及 Teensy MicroMod 平台深度优化的 ILI9342/ILI9342C 显示控制器驱动库。该库并非从零构建,而是基于成熟的 ILI9341_T4 驱动框架进行针对性重构,继承了其全部高性能特性,并针对 ILI…...
车辆状态估计模型EKF/AEKF 基于Carsim和simulink联合仿真,在建立车辆三自由...
车辆状态估计模型EKF/AEKF 基于Carsim和simulink联合仿真,在建立车辆三自由度模型(自行车模型加纵向)的基础上,分别使用EKF和AEKF算法对纵向车速,横摆角速度,质心侧偏角进行估计,并进行结果对比。 自适应扩展卡尔曼滤…...
