当前位置: 首页 > article >正文

OpenSSL 的主要功能及其示例命令

OpenSSL 是一个功能强大的开源工具包,用于处理各种与加密相关的任务,包括生成密钥、创建证书、加密解密数据、验证证书等。以下是 OpenSSL 的主要功能及其示例命令。


1.生成密钥

1.1 生成 RSA 私钥

openssl genrsa -out private_key.pem 2048

• 说明:生成一个 2048 位的 RSA 私钥,并保存到private_key.pem文件中。

1.2 从私钥提取公钥

openssl rsa -in private_key.pem -pubout -out public_key.pem

• 说明:从私钥文件中提取公钥,并保存到public_key.pem文件中。


2.生成自签名证书

2.1 生成自签名证书

openssl req -x509 -new -key private_key.pem -out certificate.pem -days 365

• 说明:使用私钥生成一个自签名的 X.509 证书,有效期为 365 天,保存到certificate.pem文件中。

2.2 生成证书签名请求(CSR)

openssl req -new -key private_key.pem -out csr.pem

• 说明:生成一个证书签名请求(CSR),保存到csr.pem文件中。CSR 可以提交给证书颁发机构(CA)以获取签名证书。


3.验证证书

3.1 验证证书

openssl x509 -in certificate.pem -text -noout

• 说明:查看证书的详细信息,包括主题、有效期、颁发者等。

3.2 验证证书链

openssl verify -CAfile ca_certificate.pem certificate.pem

• 说明:验证certificate.pem是否由ca_certificate.pem颁发。


4.加密和解密

4.1 使用公钥加密数据

openssl rsautl -encrypt -pubin -inkey public_key.pem -in plaintext.txt -out encrypted.bin

• 说明:使用公钥对plaintext.txt文件进行加密,生成加密后的二进制文件encrypted.bin

4.2 使用私钥解密数据

openssl rsautl -decrypt -inkey private_key.pem -in encrypted.bin -out decrypted.txt

• 说明:使用私钥对encrypted.bin文件进行解密,生成解密后的文件decrypted.txt


5.生成和管理证书颁发机构(CA)

5.1 创建 CA 证书

openssl genrsa -out ca_private_key.pem 2048
openssl req -x509 -new -key ca_private_key.pem -out ca_certificate.pem -days 3650

• 说明:生成一个 CA 私钥和自签名的 CA 证书,有效期为 3650 天。

5.2 签署证书请求

openssl x509 -req -in csr.pem -CA ca_certificate.pem -CAkey ca_private_key.pem -CAcreateserial -out signed_certificate.pem -days 365

• 说明:使用 CA 证书和私钥签署一个证书签名请求(CSR),生成签名后的证书signed_certificate.pem


6.创建和管理密钥库(PKCS#12)

6.1 创建 PKCS#12 密钥库

openssl pkcs12 -export -out keystore.p12 -inkey private_key.pem -in certificate.pem

• 说明:将私钥和证书打包到一个 PKCS#12 密钥库文件keystore.p12中。

6.2 从 PKCS#12 密钥库提取私钥和证书

openssl pkcs12 -in keystore.p12 -out extracted_private_key.pem -nocerts
openssl pkcs12 -in keystore.p12 -out extracted_certificate.pem -nokeys

• 说明:从 PKCS#12 密钥库中提取私钥和证书。


7.生成 Diffie-Hellman 参数

7.1 生成 DH 参数

openssl dhparam -out dhparams.pem 2048

• 说明:生成 2048 位的 Diffie-Hellman 参数,保存到dhparams.pem文件中。


8.生成和管理椭圆曲线密钥

8.1 生成椭圆曲线密钥

openssl ecparam -genkey -name prime256v1 -out ecdsa_private_key.pem

• 说明:生成一个椭圆曲线密钥,使用prime256v1曲线,保存到ecdsa_private_key.pem文件中。

8.2 提取椭圆曲线公钥

openssl ec -in ecdsa_private_key.pem -pubout -out ecdsa_public_key.pem

• 说明:从椭圆曲线私钥文件中提取公钥,保存到ecdsa_public_key.pem文件中。


9.生成和管理证书吊销列表(CRL)

9.1 创建 CRL

openssl ca -gencrl -out crl.pem -config openssl.cnf

• 说明:生成一个证书吊销列表(CRL),保存到crl.pem文件中。需要一个openssl.cnf配置文件。


10.其他常用命令

10.1 查看私钥信息

openssl rsa -in private_key.pem -check

• 说明:检查私钥文件的完整性和详细信息。

10.2 查看公钥信息

openssl rsa -pubin -in public_key.pem -check

• 说明:检查公钥文件的完整性和详细信息。

10.3 查看 CSR 信息

openssl req -in csr.pem -text -noout

• 说明:查看证书签名请求(CSR)的详细信息。

10.4 查看密钥库信息

openssl pkcs12 -info -in keystore.p12

• 说明:查看 PKCS#12 密钥库文件的详细信息。


总结
OpenSSL 是一个功能强大的工具,涵盖了从密钥生成、证书管理到数据加密解密的各个方面。通过上述命令,你可以完成大多数与加密相关的任务。如果你有特定的需求或遇到问题,可以参考 OpenSSL 的官方文档或社区支持。

相关文章:

OpenSSL 的主要功能及其示例命令

OpenSSL 是一个功能强大的开源工具包,用于处理各种与加密相关的任务,包括生成密钥、创建证书、加密解密数据、验证证书等。以下是 OpenSSL 的主要功能及其示例命令。 1.生成密钥 1.1 生成 RSA 私钥 openssl genrsa -out private_key.pem 2048• 说明&a…...

江科大51单片机笔记【11】AT24C02(I2C总线)

一、存储器 1.介绍 RAM的特点是存储速度特别快,但是掉电会丢失;ROM的特点是存储速度特别慢,但是掉电不会丢失 SRAM是所有存储器最快的,一般用于电脑的CPU高速缓存,容量相对较少,成本较高;DRAM…...

html css 笔记

01_浏览器相关知识 五大主流浏览器: Chrome Safari IE Firefox Opera (拥有自己的内核) 四大内核: webkit Trident Gecko blink. 02_网页相关知识 构成 网址 网站 网页 网页标准: 结构 表现 行为 分别对应 HTML CSS JavaScript 03_HTML简介 H…...

【一句话经验】ubuntu vi/vim 模式自动设置为paste

从centos过来,发现ubutun有些地方不习惯,尤其是vi的粘贴,默认自动进去了代码模式,导致每次粘贴必须得set paste,否则会出现问题。 解决办法非常简单,按照下面命令执行即可: cd ~ echo "…...

外层元素旋转,其包括在内的子元素一并旋转(不改变旋转中心),单元测试

思路&#xff1a;外层旋转后坐标&#xff0c;元素旋转后坐标&#xff0c;计算偏移坐标 <template><div class"outbox"><label>角度: <input v-model.number"rotate" type"number" /></label><br><div c…...

Docker容器安装软件(完整版)

文章目录 一、安装Docker1.1 docker 相关的命令1.2 配置镜像加速 二. 安装es2.1 创建网络2.2 拉取镜像2.3 创建挂载点目录2.4 部署单点es&#xff0c;创建es容器2.5 编写elasticsearch.yml2.6 重启es容器2.7 测试Elasticsearch是否安装成功 三. 基于Docker安装Kibana3.1 拉取镜…...

「 机器人 」扑翼飞行器通过总气动力控制四自由度运动方法

一、前言 在扑翼飞行中,总气动力(Total Aerodynamic Force)是指扑翼在运动过程中受到的所有空气动力作用的合力。它是由以下两种主要力的合成结果: 1. 升力(Lift, ):垂直于空气流方向的力,用于支持飞行器(或生物)的重量。 2. 阻力(Drag, ):平行于空气流方向的力,…...

Axios简单说明,快速上手

Ajax&#xff1a;异步的JavaScript和XML 作用&#xff1a; 数据交换异步交互 Axios&#xff1a;就是对原生Ajax进行封装&#xff0c;简化书写&#xff0c;快速开发 使用逻辑&#xff1a; 首先要安装Axios&#xff0c;可以通过npm在项目中安装&#xff1a; 打开命令行工具…...

云服务器安装宝塔面板部署

单机部署(前端vue项目) 服务器安装宝塔面板 连接到服务器 使用 SSH 连接到你的服务器&#xff1a; ssh rootip安装宝塔面板 运行以下命令来安装宝塔面板&#xff1a; yum install -y wget wget -O install.sh http://download.bt.cn/install/install_6.0.sh sh install.sh安…...

Python 编程题 第九节:二分查找、移动0、旋转字符串、判断子序列

二分查找 双指针查找 无重复数字 lst[1,15,24,36,78,92,101] nint(input()) def binary_search(n,lst):left 0right len(lst) - 1while left<right:mid(leftright)//2if lst[mid]n:return midelif lst[mid]<n:leftmid1elif lst[mid]>n:rightmid-1return -1 print…...

docker-compose部署MongoDB分片集群

前言 MongoDB 使用 keyFile 进行 节点间身份验证,我们需要先创建一个 keyFile 并确保所有副本集的节点使用相同的 keyFile。 openssl rand -base64 756 > mongo-keyfile chmod 400 mongo-keyfiledocker-compose部署分片集群 无密码方式 # docker-compose-mongodb.yml s…...

通义万相 2.1:AIGC 领域的 “王炸” 组合如何颠覆创作生态?

引言 在数字化和人工智能的飞速发展中&#xff0c;AIGC&#xff08;AI生成内容&#xff09;技术已经成为推动创作、设计和内容生成领域创新的核心力量。而当通义万相2.1与蓝耘智算平台强强联手&#xff0c;这一“王炸”组合不仅提升了AIGC的效率&#xff0c;还为创作生态带来了…...

elementPlus之日历扩展功能

在这里做个记录&#xff0c;感觉用得还挺多的 功能有如下&#xff1a; 切换月份按钮对应日历视图和中间日期都要变选择日期日历视图要变点击日历视图中的不属于当前选中月份的日期即可触发日历视图变化以及中间日期也要变 代码如下&#xff1a; <template><div clas…...

C# NX二次开发:获取模型中所有表达式并且更新某个表达式的值

大家好&#xff0c;今天要讲的是关于NX中表达式的相关UFUN函数。 UF_MODL_ask_exps_of_part (view source) tag_tpart_tagInputTag of the part to be queriedint *number_of_expsOutputNumber of expressions returnedtag_t * *expsOutput to UF_*free*All the expressions i…...

Ollama本地部署deepseek-r1蒸馏版

Docker安装Ollama 拉取镜像 docker pull ollama/ollama​ 启动-使用GPU docker run -d --gpusall -p 11434:11434 --name ollama ollama/ollamadocker run : Docker 的核心命令&#xff0c;用于创建并启动一个新的容器。 -d : 后台模式&#xff08;detached mode&#xff09…...

计算机毕业设计:基于web的乡村旅游系统

基于web的乡村旅游系统mysql数据库创建语句基于web的乡村旅游系统oracle数据库创建语句基于web的乡村旅游系统sqlserver数据库创建语句基于web的乡村旅游系统springspringMVChibernate框架对象(javaBean,pojo)设计基于web的乡村旅游系统springspringMVCmybatis框架对象(javaBea…...

c#面试题整理9

1.遍历xml文档 2.解释一下这段 String s new String("xyz"); 这段在C#平台中&#xff0c;编译失败 3.说明一下抽象类 抽象类可以有构造函数 抽象类不能是静态和密封的类&#xff0c;密封的类表示无法继承&#xff0c;抽象类本身就不可实例化&#xff0c;加不好…...

【具身相关】legged_gym, isaacgym、rsl_rl关系梳理

【legged_gym】legged_gym, isaacgym代码逻辑梳理 总体关系IsaacGymlegged_gymrsl_rl三者的关系 legged_gym代码库介绍环境模块env 总体关系 IsaacGym Isaac Gym 是 NVIDIA 开发的一个高性能物理仿真平台&#xff0c;专门用于强化学习和机器人控制任务。它基于 NVIDIA 的 Phy…...

个人学习编程(3-12) 刷题

杨辉三角形&#xff1a; 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 主要是发现规律&#xff1a;一、…...

Java Kryo 序列化与反序列化

Java Kryo 序列化与反序列化 Kryo 是一个高效的 Java 序列化框架,提供比 Java 原生序列化更快、更紧凑的序列化能力。它通常用于缓存、分布式通信和数据存储。 1. 引入 Kryo 依赖 如果你使用的是 Maven,可以添加以下依赖: <dependency><groupId>com.esoteri…...

侯捷C++课程学习笔记:构造函数那些事儿(四)

C 构造函数全面解析 上图节选自爱吃喵的鲤鱼 一、构造函数基础特性 1. 核心功能定位 ​对象初始化中枢&#xff1a;负责在对象创建时完成成员变量的初始化工作​生命周期唯一性&#xff1a;每个对象在其生命周期内仅被调用一次&#xff0c;类似出生证明的签发过程 2. 基础语…...

Java 序列化和反序列化为什么要实现Serializable接口

1. 什么是序列化和反序列化 序列化&#xff1a;将对象的状态信息转换为可以存储或传输的形式&#xff08;通常是字节序列&#xff09;的过程。例如&#xff0c;将一个 Java 对象保存到文件中或者通过网络发送给其他程序。 反序列化&#xff1a;将字节序列恢复为对象的过程。比…...

java虚拟机(JVM)以及各种参数详解

Java 虚拟机&#xff08;JVM&#xff09;提供了许多参数来调整其行为和性能&#xff0c;以便更好地适应不同的应用场景。理解和使用这些参数对于优化 Java 应用程序的性能非常重要。以下是一些常用的 JVM 参数及其详细说明&#xff1a; 1. 内存管理参数 -Xms<size>&…...

微信小程序审核失败,你的小程序涉及提供播放、观看等服务,请补充选择:文娱-其他视频类目 解决

之前审核的都没有什么问题&#xff0c;结果这次就不给过还提示我们这个。 我们的视频是操作演示的视频。仅用于介绍使用。 是否接受修改指引&#xff0c;勾选我不理解以上内容 再勾选 下面不理解内容异项 申诉理由 视频播放和观看只限于当前用户自己使用&#xff0c;而视…...

电力行业研究系列报告

欧洲风能&#xff1a;2024年统计数据及2025-2030年展望 固态电池全景图&#xff1a;方兴未艾&#xff0c;技术竞逐 电力设备新能源2025年3月投资策略&#xff1a;固态电池产业加速推进&#xff0c;关注GTC大会HVDC电源产品应用趋势 62页PPT了解国内外40家固态电池典型企业技…...

蓝桥杯嵌入式组第七届省赛题目解析+STM32G431RBT6实现源码

文章目录 1.题目解析1.1 分而治之&#xff0c;藕断丝连1.2 模块化思维导图1.3 模块解析1.3.1 KEY模块1.3.2 ADC模块1.3.3 IIC模块1.3.4 UART模块1.3.5 LCD模块1.3.6 LED模块1.3.7 TIM模块 2.源码3.第七届题目 前言&#xff1a;STM32G431RBT6实现嵌入式组第七届题目解析源码&…...

苹果iOS 18.4将强制升级HomeKit架构,旧版设备或无法使用

在科技飞速发展的当下,智能家居领域也在不断革新。而苹果公司作为科技行业的巨头,其每一次动作都备受关注。近日,有消息称苹果计划在iOS 18.4版本中停止对旧版HomeKit架构的支持,这一举措意味着用户将被迫升级,也可能对众多使用Apple Home应用的智能家居设备用户产生深远影…...

dit block部分

我首先会仔细阅读用户指令&#xff0c;明确用户的需求是基于文章的前十页内容&#xff0c;对3.2节“Diffusion Transformer Design Space”中的“DiT block design”部分进行原文翻译&#xff0c;并且在翻译完成后进行总结。为了完成这个任务&#xff0c;我需要先定位到文章的3…...

在MATLAB中实现PID控制仿真

在MATLAB中实现PID控制仿真可以通过代码编程或Simulink图形化建模两种方式完成。以下是两种方法的详细操作步骤和示例&#xff1a; 方法1&#xff1a;使用MATLAB脚本编程&#xff08;基于控制系统工具箱&#xff09; 步骤1&#xff1a;定义被控对象的数学模型 假设被控对象是…...

ChebyKAN0、ChebyKAN1 网络阅读

目录 ChebyKAN0 Chebyshev Polynomial-Based Kolmogorov-Arnold Networks: An Efficient Architecture for Nonlinear Function Approximation 参考文献 文章内容 文章详细结构 5. Experiments and Results 5.1 Digit Classification on MNIST 5.2 Function Approximat…...