
Linux openssl 命令
OpenSSL 是一款功能强大的开源加密套件,集成了多种加密算法、证书管理模块以及 SSL/TLS 协议的实现。作为 Linux 系统中处理加密操作的标准工具,它被广泛应用于各类安全任务中。
OpenSSL 的核心功能涵盖:
- SSL 证书创建和维护
- 文件加解密操作
- 密钥对生成
- SSL 连接测试
- 哈希值计算
- 数字签名校验
基本语法
openssl 命令的通用格式如下:
openssl command [command_options] [command_args]
说明:
command
:指定要运行的 OpenSSL 子命令(例如 genrsa、req、x509 等)command_options
:子命令的选项参数command_args
:子命令所需的输入参数
常用子命令及示例
1. 生成 RSA 密钥对
生成 2048 位长度的 RSA 私钥文件:
openssl genrsa -out private.key 2048
从私钥中导出对应的公钥:
openssl rsa -in private.key -pubout -out public.key
关键参数解释:
-out
:设置输出文件路径2048
:表示密钥位数-pubout
:启用公钥输出模式
2. 创建自签名证书
生成 CSR 请求文件:
openssl req -new -key private.key -out cert.csr
创建有效期为一年的自签名证书:
openssl req -x509 -new -key private.key -days 365 -out cert.crt
主要参数含义:
-new
:新建请求-key
:关联私钥文件-days
:设定证书有效天数-x509
:生成 X.509 格式证书
3. 文件加解密操作
AES-256-CBC 模式加密文件:
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.enc
使用相同密钥进行解密:
openssl enc -d -aes-256-cbc -in encrypted.enc -out decrypted.txt
参数解析:
-aes-256-cbc
:采用 AES-256-CBC 加密方式-salt
:加入随机盐值增强安全性-in
:源文件路径-out
:目标文件路径-d
:启动解密流程
4. 计算文件哈希摘要
SHA-256 哈希计算:
openssl dgst -sha256 filename.txt
MD5 哈希计算:
openssl dgst -md5 filename.txt
5. 测试 SSL 安全连接
查看远程服务器 SSL 证书详情:
openssl s_client -connect example.com:443 -showcerts
参数说明:
-connect
:定义目标主机地址和端口-showcerts
:显示完整的证书链信息
高级用法
1. 创建 PKCS#12 格式证书包
将证书和私钥打包成 P12 文件:
openssl pkcs12 -export -in cert.crt -inkey private.key -out cert.p12
2. 查看证书内容
展示证书详细信息:
openssl x509 -in cert.crt -text -noout
3. 验证证书链有效性
执行证书链验证:
openssl verify -CAfile ca.crt cert.crt
安全建议
- 密钥防护:私钥文件应配置严格权限(如 600),防止未授权访问
- 算法选择:避免使用已被淘汰的 MD5 或 SHA1 算法
- 密码强度:加密操作时务必使用高强度密码
- 证书更新:及时替换过期的证书
- 熵值保障:确保系统具备足够的随机性用于加密运算
常见问题解答
Q1: 如何查询当前 OpenSSL 版本?
openssl version
Q2: 如何创建更安全的 ECC 类型密钥?
openssl ecparam -genkey -name secp384r1 -out ecc.key
Q3: 如何在不同证书格式间转换?
PEM 转 DER 格式示例:
openssl x509 -in cert.pem -outform der -out cert.der
实践练习
- 创建一个 4096 位的 RSA 密钥对
- 制作有效期为两年的自签名证书
- 对文本文件执行加密并用相同密钥完成解密
- 检查你经常访问网站的 SSL 证书详情
熟练掌握 openssl 命令能够帮助你高效完成各类加密和安全相关操作,为系统安全运维提供有力支持。










