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

📅 2026/8/15 22:47:07
OpenSSL 密码工具套件:openssl 命令完整详解(加密 / 密钥 / 证书实战)
Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8一、命令简介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 152. 计算文件的 SHA256 哈希值bash运行openssl dgst -sha256 filename.iso或bash运行openssl sha256 filename.iso3. 生成 RSA 私钥和 CSR生成一个 2048 位、AES‑256 加密的私钥和对应的 CSRbash运行# 生成私钥 openssl genrsa -aes256 -out server.key 2048 # 基于此私钥生成CSR会提示输入证书信息 openssl req -new -key server.key -out server.csr4. 查看证书详情bash运行openssl x509 -in certificate.crt -text -noout5. 测试网站 SSL 证书连接到远程服务器并显示其证书信息bash运行openssl s_client -connect www.example.com:443 -servername www.example.com6. 对称加密解密文件使用 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.txt7. 创建自签名证书bash运行openssl req -x509 -newkey rsa:2048 -keyout mykey.pem -out mycert.pem -days 365 -nodes五、注意事项安全性OpenSSL 库和工具的漏洞可能影响广泛。务必保持系统上的 OpenSSL 版本为最新稳定版。 私钥保护生成的私钥文件必须妥善保管设置严格的文件权限如 600并存储在安全位置避免泄露。 密码管理在使用加密私钥或对称加密时选择强密码并考虑使用密码管理器或密钥派生函数增强安全性。 配置依赖某些命令如 req依赖配置文件确保配置文件正确或显式指定以避免默认配置导致的问题。