OpenSSL详解

这里写目录标题

  • 选项:
      • **通用选项:**
      • 1. genrsa:生成RSA密钥对
      • 3. req:生成证书签名请求
      • 4. x509:生成自签名证书
    • **证书管理:**
      • 1. verify:验证证书
      • 2. x509:查看证书详情
      • 3. crl:生成证书吊销列表
    • **附加选项:**
      • 1. -out:指定输出文件名
      • 2. -in:指定输入文件名
      • 3. -days:指定证书有效期
    • **格式转换:**
      • 1. pkcs7:将证书和私钥打包成PKCS#7格式
      • 2. pkcs12:将证书和私钥打包成PKCS#12格式
    • 其他选项
      • 1. enc选项:
      • 2. s_client选项:
      • 3. s_server选项:
      • 4. cms选项:
      • 5. speed选项:
      • 6. s_time选项:
  • 使用案例:

openssl是一个开源的加密工具,可以用来生成证书、加密、解密等操作。以下列出了一些常用选项及使用案例:

选项:

通用选项:

1. genrsa:生成RSA密钥对

openssl genrsa -out private.key 2048
#生成一个2048位的RSA私钥,并将私钥保存为private.key。

3. req:生成证书签名请求

openssl req -new -key private.key -out request.csr
#使用私钥文件private.key生成一个新的证书签名请求,并将请求保存为request.csr文件。

4. x509:生成自签名证书

openssl req -x509 -key private.key -in request.csr -out certificate.crt -days 365
#使用私钥文件private.key和证书签名请求文件request.csr生成一个自签名的X.509证书,并将证书保存为certificate.crt文件,证书的有效期为365天。

证书管理:

1. verify:验证证书

openssl verify certificate.crt
#验证证书的有效性。通过输入证书文件的路径,openssl会检查证书是否能够通过验证。如果证书有效,会输出"certificate.crt: OK";如果证书无效或者无法验证,会输出相应的错误信息。

2. x509:查看证书详情

openssl x509 -in certificate.crt -text
#查看证书的详细信息。通过输入证书文件的路径和参数"-text",openssl会显示证书的公钥、颁发者、有效期、数字签名等详细信息。

3. crl:生成证书吊销列表

openssl ca -revoke revoked.crt -crl_reason keyCompromise -crl_reason superseded
生成证书吊销列表。通过输入被吊销的证书文件的路径和
#吊销原因,openssl会生成一个包含吊销证书信息的CRL文件。
#在生成CRL时可以指定吊销证书的原因,比如keyCompromise(密钥被泄露)或者superseded(证书被替换)。生成CRL后可以通过将其分发给相关方,以便他们在使用证书时检查证书的有效性

附加选项:

1. -out:指定输出文件名

2. -in:指定输入文件名

3. -days:指定证书有效期

格式转换:

1. pkcs7:将证书和私钥打包成PKCS#7格式

openssl crl2pkcs7 -nocrl -certfile certificate.crt -certfile ca.crt -out pkcs7.p7b
  • openssl crl2pkcs7: 这个命令将用于将证书和私钥打包成PKCS#7格式。
  • -nocrl: 这个选项表示不包含证书注销列表(CRL)。
  • -certfile certificate.crt -certfile ca.crt: 这里指定了要包含在PKCS#7文件中的证书文件,certificate.crt代表证书文件,ca.crt代表CA证书文件。
  • -out pkcs7.p7b: 这个选项表示输出的文件名为pkcs7.p7b

2. pkcs12:将证书和私钥打包成PKCS#12格式

openssl pkcs12 -export -in certificate.crt -inkey private.key -out pkcs12.p12
  • openssl pkcs12: 这个命令将用于将证书和私钥打包成PKCS#12格式。
  • -export: 这个选项表示要执行导出操作。
  • -in certificate.crt: 这里指定了要包含在PKCS#12文件中的证书文件,certificate.crt代表证书文件。
  • -inkey private.key: 这里指定了要包含在PKCS#12文件中的私钥文件,private.key代表私钥文件。
  • -out pkcs12.p12: 这个选项表示输出的文件名为pkcs12.p12

其他选项

1. enc选项:

openssl enc [options]
  • 示例:加密文件:openssl enc -aes-256-cbc -in plaintext.txt -out ciphertext.txt

2. s_client选项:

openssl s_client [options]
  • 示例:连接到SSL/TLS服务器并显示证书信息:openssl s_client -connect www.example.com:443

3. s_server选项:

openssl s_server [options]
  • 示例:创建一个SSL/TLS服务器:openssl s_server -key server.key -cert server.crt

4. cms选项:

openssl cms [options]
  • 示例:处理CMS格式的文件:openssl cms -verify -in signed.cms -inform DER -content data.txt -binary

5. speed选项:

openssl speed [options]
  • 示例:测试AES加密算法的性能:openssl speed -evp aes-256-cbc

6. s_time选项:

openssl s_time [options]
  • 示例:测试SSL/TLS服务器的性能:openssl s_time -connect www.example.com:443

使用案例:

  1. 生成RSA密钥对:
openssl genrsa -out private.key 2048
  1. 生成证书签名请求:
openssl req -new -key private.key -out csr.csr
  1. 生成自签名证书:
openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.crt -days 365
  1. 加密文件:
openssl enc -aes-256-cbc -in plaintext.txt -out encrypted.txt
  1. 解密文件:
openssl enc -d -aes-256-cbc -in encrypted.txt -out decrypted.txt
  1. 连接SSL/TLS服务器并显示相关信息:
openssl s_client -connect example.com:443
  1. 创建SSL/TLS服务器:
openssl s_server -cert certificate.crt -key private.key -accept 443
  1. 计算消息的哈希值:
openssl dgst -sha256 file.txt
  1. 将证书和私钥存储在PKCS#12格式的文件中:
openssl pkcs12 -export -in certificate.crt -inkey private.key -out certificate.p12

以上是一些常用的openssl命令选项和使用案例,更多选项和用法可以通过查阅openssl的官方文档来了解。

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

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

相关文章

MySQL的日志和备份

目录 一. MySQL的日志 1.1 日志的作用 1.2 日志的分类 1.3 事务日志 1.4 错误日志 1.5 通用日志 1.6 慢查询日志 1.7 二进制备份 二. 备份 2.1 数据备份的重要性 2.2 备份的分类 2.3 MySQL备份的内容 2.4 备份的注意点 2.5 备份的工具 2.6 实战案例 2.7 mysql…

前端性能优化:如何让网页加载更快?

摘要 想象一下,满心期待点开一个网页,却等了十几秒还卡在加载界面,你是不是瞬间就想关掉走人?这可不是个别用户的 “急性子”,数据显示,网页每多延迟 1 秒,用户流失率可能增加 11%!…

[论文阅读]Prompt Injection attack against LLM-integrated Applications

Prompt Injection attack against LLM-integrated Applications [2306.05499] Prompt Injection attack against LLM-integrated Applications 传统提示注入攻击效果差,主要原因在于: 不同的应用对待用户的输入内容不同,有的将其视为问题&a…

微信小程序进阶第2篇__事件类型_冒泡_非冒泡

在小程序中, 事件分为两种类型: 冒泡事件, 当一个组件上的事件被触发后,该事件会向父节点传递非冒泡事件, 当一个组件上的事件被触发后, 该事件不会向父节点传递。 一 冒泡事件 tap, touchst…

[免费]SpringBoot+Vue在线教育(在线学习)系统(高级版)【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue在线教育(在线学习)系统(高级版)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】SpringBootVue在线教育(在线学习)系统(高级版) Java毕业设计_哔哩哔哩_bilibili 项目介绍…

TypeScript 针对 iOS 不支持 JIT 的优化策略总结

# **TypeScript 针对 iOS 不支持 JIT 的优化策略总结** 由于 iOS 的 **JavaScriptCore (JSC)** 引擎 **禁用 JIT(Just-In-Time 编译)**,JavaScript 在 iOS 上的执行性能较差,尤其是涉及动态代码时。 **TypeScript(T…

项目部署一次记录

链路:(用户)客户端 → Nginx:192.168.138.100→ Tomcat (程序):192.168.138.101→ MySQL/Redis 打开数据库:systemctl start mysqld 重启网络: systemctl restart NetworkManager 关闭防火墙&am…

C 语言学习笔记

文章目录 程序设计入门 --- C 语言第一周 程序设计与 C 语言1 计算机与编程语言:计算机怎么做事情的,编程语言是什么📒 1.1 计算机的普遍应用 —— 离了它,现代人可能不会“活”了**🌐 科学计算:计算机的“…

服务器修改/home的挂载路径

写在前面:前段时间新装了一台服务器,/home目录原本是挂在在系统盘/dev/sda4的分区下,但是系统盘的空间比较小,为了保证后续使用起来,不会遇到磁盘很快就占满的情况,现在需要将 /home 独立出来,挂…

刷机维修进阶教程-----没有开启usb调试 如何在锁定机型的拨号界面特殊手段来开启ADB

有时候我们会遇到一些机型被屏幕锁 账号锁等锁定。无法进入系统界面。也没有开启usb调试的情况下如何通过一些操作来开启adb调试。然后通过adb指令来禁用对应的app顺利进入系统。以此来操作保数据等操作. 通过博文了解💝💝💝 1💝💝💝----了解一些品牌机型锁定状态…

虚拟文件(VFS)

核心知识点:虚拟文件系统(VFS) 1. 通俗易懂的解释 想象一下你家里的冰箱。你把食物放进去,不用管它是放在塑料盒里、玻璃罐里还是直接用保鲜膜包着,你只需要知道它在冰箱的哪个位置(比如“蔬菜抽屉里”&a…

前后端联调实战指南:Axios拦截器、CORS与JWT身份验证全解析

前言 在现代Web开发中,前后端分离架构已成为主流,而前后端联调则是开发过程中不可避免的关键环节。本文将深入探讨前后端联调中的三大核心技术:Axios拦截器的灵活运用、CORS跨域问题的全面解决方案以及JWT身份验证的安全实现。通过本文&…

Postman基础操作

1.Postman是什么? Postman是接口测试的工具,简单来说它能模拟浏览器对服务器的某个接口发起请求并接收响应数据。 1.1 Postman工作原理 2.Postman发送请求 2.1 发送GET请求 我们知道GET请求是没用请求体的,所以我们需要将请求参数写在Param…

Elasticsearch Synthetic _source

_source 字段包含索引时传入的原始 JSON 文档体。_source 字段本身不被索引(因此不可搜索),但会被存储,以便在执行获取请求(如 get 或 search)时返回。 如果磁盘使用很重要,可以考虑以下选项&a…

Vue3 + Element Plus 实现用户管理模块

本文介绍一个使用 Vue3 Element Plus 实现的用户与小组管理模块,支持用户的增删改查(CRUD)和分页管理,以及小组的新增和删除功能,适用于管理后台系统中的用户权限管理场景。 一、项目简介 该模块具备以下功能&#…

Python应用“面向对象”小练习

大家好!面向对象编程是一种以 “对象” 为核心的编程思想。对象可以看作是具有特定属性和行为的实体。例如,一个学生可以是一个对象,他的属性包括姓名和年龄,行为可以是打招呼。​ 代码呈现: # 定义类和对象 class Student:def __init__(sel…

线性回归原理推导与应用(八):逻辑回归二分类乳腺癌数据分类

乳腺癌数据是sklearn中自带的数据集,需要通过相关特征对是否患有乳腺癌进行分类。 数据清洗与建模 首先加载相关库和相关数据 from sklearn.datasets import load_breast_cancer from sklearn.linear_model import LogisticRegression import numpy as np import…

nginx的一些配置的意思

1.用这个端口可以访问到nginx 2.工作进程,设置成和cpu核心数一样即可 3.每个工作进程的最大网络连接数。 4.主机名称 设置反向代理时,把server_name设置成ip。 5.反向代理进行转发,localhost指的是nginx所在的机器。 关键字proxy_pass。 …

SID103S/D/Q-300nA, 轨至轨, CMOS 运算放大器替代SGM8141

概述 SID103系列产品是专注于超低功耗、轨至轨、CMOS运算放大器,最低工作电压可以支持到1.4V,并且工作时每个通道仅消耗300nA的电流。特别适合穿戴式、独立式等对功耗敏感的电池供电场景。 SID103系列产品拥有5kHz的增益带宽积,外接500pF电…

十六进制字符转十进制算法

十六进制与十进制对照 十六进制十进制00112233445566778899A10B11C12D13E14F15 十六进制与十进制区别 十六进制是满16进1,十进制是满10进1,这里要注意下区别,16进制的字符里面为什么是0-9没有10,这里面进了一位,表示…