openssl基础指令
OpenSSL是一个功能强大的命令行加密工具包,基本语法是 openssl 子命令 [选项] [参数]。以下是按功能分类的常用指令:
🛠️ 其他实用工具
- 生成随机数:
# 生成32字节十六进制随机数
openssl rand -hex 32
# 生成32字节base64字符串
openssl rand -base64 32
- Base64编码/解码:
echo "text" | openssl base64(编码);openssl base64 -d -in encoded.data(解码)。
# 编码
echo "text" | openssl base64
# 解码
openssl base64 -d -in encoded.data -out output.txt
echo "MTIzNAo=" | openssl base64 -d
- 查看版本:
openssl version -a。 - 获取帮助:
openssl help或openssl 子命令 -help。
🔑 密钥管理
- 生成RSA私钥:
openssl genrsa -out private.key 2048(生成2048位私钥)。 - 生成公钥:
openssl rsa -in private.key -pubout -out public.key(从私钥提取公钥)。 - 查看私钥:
openssl rsa -in private.key -text -noout。 - 生成EC私钥:
openssl ecparam -genkey -name prime256v1 -out ec_private.key(使用prime256v1曲线)。
📜 证书管理
- 生成自签名证书:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes。 - 生成证书签名请求(CSR):
openssl req -new -key private.key -out request.csr(会提示输入证书信息)。 - 查看CSR内容:
openssl req -in request.csr -noout -text。 - 转换证书格式:
openssl x509 -inform der -in cert.cer -out cert.pem(DER转PEM)。 - 创建PKCS#12证书:
openssl pkcs12 -export -in cert.pem -inkey private.key -out bundle.pfx(生成含私钥的PFX文件)。
🔐 文件加密与解密
- 对称加密:
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc(-d参数用于解密)。 - RSA公钥加密:
openssl rsautl -encrypt -pubin -inkey public.key -in file.txt -out file.enc。 - RSA私钥解密:
openssl rsautl -decrypt -inkey private.key -in file.enc -out file.txt。
🖋️ 哈希与签名
- 计算哈希:
openssl dgst -sha256 file.txt(计算SHA-256哈希值)。 - 生成数字签名:
openssl dgst -sha256 -sign private.key -out sig file.txt。 - 验证数字签名:
openssl dgst -sha256 -verify public.key -signature sig file.txt。
🌐 连接与测试
- 测试SSL/TLS连接:
openssl s_client -connect example.com:443(查看服务器证书链)。 - 性能测试:
openssl speed -multi 4 rsa(测试RSA算法性能)。
💡 快速参考备忘清单
- 密钥操作:
genrsa(生成RSA)、ecparam(生成EC)、rsa(处理RSA)、pkey(通用密钥处理)。 - 证书操作:
req(生成CSR/自签名)、x509(显示/签名证书)、verify(验证证书)、pkcs12(处理PKCS#12)。 - 加密/哈希:
enc(对称加密)、dgst(哈希/签名)、rsautl(RSA加解密)。
💡 使用提示:OpenSSL子命令极多,可通过 openssl list 查看完整列表。同时注意密钥文件权限和密码安全。