温馨提示×

Ubuntu OpenSSL命令行操作详解

小樊
51
2025-08-18 00:45:44
栏目: 云计算

以下是Ubuntu下OpenSSL命令行操作的详细说明,涵盖安装、加密解密、证书管理及常用功能:

一、安装OpenSSL

sudo apt update sudo apt install openssl libssl-dev # 安装OpenSSL及开发库  openssl version # 验证安装,显示版本号  

二、密钥与证书管理

1. 生成RSA密钥对

  • 生成私钥(2048位,可选AES加密保护):
    openssl genpkey -algorithm RSA -out private.key -aes256 # 需输入密码  # 或旧版本:openssl genrsa -out private.key 2048  
  • 提取公钥
    openssl rsa -in private.key -pubout -out public.key 

2. 生成证书签名请求(CSR)

openssl req -new -key private.key -out certificate.csr # 交互式输入国家、组织、域名等信息(如CN=example.com)  

3. 生成自签名证书

openssl x509 -req -in certificate.csr -signkey private.key -out certificate.crt -days 365 # -days 指定有效期(默认365天)  

4. 查看证书信息

  • 详细信息
    openssl x509 -in certificate.crt -text -noout 
  • 有效期
    openssl x509 -in certificate.crt -noout -dates 
  • 公钥/颁发者/主题
    openssl x509 -in certificate.crt -pubkey -noout # 公钥  openssl x509 -in certificate.crt -issuer -noout # 颁发者  openssl x509 -in certificate.crt -subject -noout # 主题  

三、加密与解密操作

1. 对称加密(AES-256-CBC)

  • 加密文件
    openssl enc -aes-256-cbc -salt -in file.txt -out file.enc # 输入密码,生成加密文件file.enc  
  • 解密文件
    openssl enc -d -aes-256-cbc -in file.enc -out file.txt # 输入相同密码,还原文件  

2. 非对称加密(RSA)

  • 公钥加密
    openssl rsautl -encrypt -inkey public.key -pubin -in plaintext.txt -out encrypted.bin 
  • 私钥解密
    openssl rsautl -decrypt -inkey private.key -in encrypted.bin -out decrypted.txt 

四、其他常用操作

1. 生成随机密码

openssl rand -base64 32 # 生成32字节随机字符串(Base64编码)  

2. 转换证书格式

  • PEM转PFX
    openssl pkcs12 -export -in certificate.crt -inkey private.key -out certificate.pfx 
  • 合并证书链(服务器证书+中间证书):
    cat server.crt intermediate.crt > full-chain.crt 

3. 校验文件完整性

openssl dgst -sha256 file.txt # 计算SHA-256哈希值  

五、注意事项

  • 私钥保护:避免泄露私钥文件,建议加密存储(如使用-aes256选项)。
  • 权限管理:确保证书和密钥文件权限为600(仅所有者可读写):
    chmod 600 private.key certificate.crt 
  • 版本兼容性:不同Ubuntu版本可能默认安装不同OpenSSL版本,可通过openssl version确认。

以上命令参考自,可根据实际需求选择使用。

0