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

OpenSSL 密码工具套件:openssl 命令完整详解(加密 / 密钥 / 证书实战)

Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd=7uz8

一、命令简介

openssl 是一个功能强大且应用广泛的开源工具套件和密码学库,它实现了 安全套接字层(SSL) 和 传输层安全(TLS) 协议。该工具提供了全面的密码学功能,包括对称 / 非对称加密、数字签名、证书管理、消息摘要以及各种网络协议的安全实现。它不仅是许多安全应用和协议(如 HTTPS)的基石,也是系统管理员和开发人员进行安全测试、密钥和证书管理的核心命令行工具。

二、语法格式

openssl 命令的基本语法格式如下:

bash

运行

openssl command [command_options] [command_args]

更通用的格式为:

bash

运行

openssl [全局选项] <命令> [命令选项] [命令参数]

运行模式:

交互模式:直接输入 openssl 并回车,会进入一个交互式命令行环境。 批处理模式:输入 openssl 后紧跟特定命令和参数,执行单一任务后退出。

三、常用选项及说明

openssl 包含众多子命令,以下分类列出最常用的命令及其关键选项:

1. 标准命令与消息摘要

version:查看 OpenSSL 版本信息。 help:获取命令帮助。 dgst:计算消息摘要(哈希值),支持多种算法。 -sign file:使用私钥对摘要签名。 -verify file:使用公钥验证签名。 sha1, sha256, md5 等:直接使用指定算法的摘要命令。

2. 对称加密与编码

enc:对称加密 / 解密工具。 -e:加密(默认)。 -d:解密。 -aes-256-cbc, -des3:指定加密算法和模式。 -salt:使用盐值增加安全性。 -in file:输入文件。 -out file:输出文件。 -k /-pass:指定密码。 base64:进行 Base64 编码或解码。 -e:编码。 -d:解码。

3. 非对称加密与密钥管理

genrsa:生成 RSA 私钥。 -out key.pem:输出密钥文件。 -aes256:用 AES‑256 加密私钥。 2048:指定密钥位数(如 2048)。 rsa:处理 RSA 密钥。 -in key.pem:输入密钥文件。 -pubout:从私钥中提取并输出公钥。 -text:以文本形式输出密钥详情。 genpkey:生成多种算法的私钥(更现代的替代)。 pkey:处理通用私钥。

4. 证书签名请求与证书

req:生成证书签名请求(CSR)或自签名证书。 -new:生成新的 CSR。 -newkey rsa:2048:生成新私钥和 CSR。 -key key.pem:使用现有私钥。 -out req.csr:输出 CSR 文件。 -x509:生成自签名证书。 -days 365:设置证书有效期。 -config file:指定配置文件。 x509:证书查看与处理。 -in cert.pem:输入证书。 -text:以文本形式显示证书详情。 -noout:不输出编码后的证书。 -dates:显示起止日期。 -subject /-issuer:显示主题 / 颁发者。 -fingerprint:显示指纹。

5. 其他实用命令

s_client:作为 SSL/TLS 客户端连接服务器,用于测试和调试。 -connect host:port:连接的主机和端口。 -servername name:指定 SNI。 s_server:启动一个 SSL/TLS 测试服务器。 rand:生成随机数据。 -base64 num:生成指定字节数的随机数据,并以 Base64 输出。 -hex num:以十六进制输出。 smime:处理 S/MIME 邮件(加密、签名、验证)。

四、示例用法

1. 生成随机密码

生成一个 15 字节的随机密码,并用 Base64 编码:

bash

运行

openssl rand -base64 15

2. 计算文件的 SHA256 哈希值

bash

运行

openssl dgst -sha256 filename.iso

或:

bash

运行

openssl sha256 filename.iso

3. 生成 RSA 私钥和 CSR

生成一个 2048 位、AES‑256 加密的私钥和对应的 CSR:

bash

运行

# 生成私钥 openssl genrsa -aes256 -out server.key 2048 # 基于此私钥生成CSR,会提示输入证书信息 openssl req -new -key server.key -out server.csr

4. 查看证书详情

bash

运行

openssl x509 -in certificate.crt -text -noout

5. 测试网站 SSL 证书

连接到远程服务器并显示其证书信息:

bash

运行

openssl s_client -connect www.example.com:443 -servername www.example.com

6. 对称加密解密文件

使用 AES‑256‑CBC 加密一个文件:

bash

运行

openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.enc

解密该文件:

bash

运行

openssl enc -aes-256-cbc -d -in encrypted.enc -out plaintext.txt

7. 创建自签名证书

bash

运行

openssl req -x509 -newkey rsa:2048 -keyout mykey.pem -out mycert.pem -days 365 -nodes

五、注意事项

安全性:OpenSSL 库和工具的漏洞可能影响广泛。务必保持系统上的 OpenSSL 版本为最新稳定版。 私钥保护:生成的私钥文件必须妥善保管,设置严格的文件权限(如 600),并存储在安全位置,避免泄露。 密码管理:在使用加密私钥或对称加密时,选择强密码,并考虑使用密码管理器或密钥派生函数增强安全性。 配置依赖:某些命令(如 req)依赖配置文件,确保配置文件正确或显式指定,以避免默认配置导致的问题。

http://www.jsqmd.com/news/1401029/

相关文章:

  • 2026年7月遵义市二手房价格深度分析报告
  • 天道15,16集
  • Python学习系统工程:从环境搭建到实战项目的完整路径设计
  • 上海分手协议履行纠纷律所:2026年8月分手协议违约责任法律认定 - 品牌深度评测
  • day26-即梦全流程
  • ANSYS 2024 R2安装与多版本共存部署指南
  • LLM API监控工具Vergilant:实时告警与成本控制实践
  • 从Alpha-Beta剪枝到增量评估:构建高性能五子棋AI的核心技术解析
  • 字符串切片 `s[2:4]` 表示从索引 2(包含)开始,到索引 4(不包含)结束
  • GPT-5.4暴击华尔街!白领工作灭绝时刻,美国5.7万科技岗位被血洗
  • AI Agent技术解析:从LLM到智能体框架的社交应用实战
  • 特种904L不锈钢优质现货经销商_904L特种钢代理商_一站式批发服务 - 2027品牌AI展
  • Google Earth三维导航全解析:从六自由度操控到键鼠协同实战
  • 英语附加问句全解析:从核心规则到地道语调应用
  • 2507双相钢焊接难点与工艺要点详解 - 2027品牌AI展
  • iOS ATT框架深度解析:从IDFA权限管理到SKAdNetwork归因实战
  • 春秋云镜靶场漏洞复现:CVE-2022-22963 Spring Cloud Function SpEL 注入
  • JoyCon-Driver完整使用指南:3步让Switch手柄在Windows上满血复活
  • C++面试核心:智能指针、对象模型与内存管理实战解析
  • 基于MiniCPM5-1B构建本地GMGN研究智能体:轻量化AI的垂直领域实践
  • 推荐一下国内资深的钨钢MB20EDM工厂:优选 - 品牌推广大师
  • 英飞凌Plecs热模型参数及计算公式解读
  • AI智能体在制造业的应用:从工艺知识传承到实时质量控制
  • HoRain云--NumPy 数组属性
  • 52-综合实战线上调优全流程
  • JVM 内存管理原理及生产配置实战:从“参数能启动”到“内存可控”
  • 春秋云镜靶场漏洞复现:CVE-2022-23880 taoCMS `.phtml` 上传执行
  • 春秋云镜靶场漏洞复现:CVE-2022-22909 Hotel Druid 房间名称代码注入
  • 深入骨髓!50行代码拆解LLM Harness工程:如何用“赛马机制”根治幻觉
  • 视频异常检测新范式:对比事件裁决,无需训练识别未知异常