跳到主要内容

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 helpopenssl 子命令 -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 查看完整列表。同时注意密钥文件权限密码安全