温馨提示×

Ubuntu OpenSSL命令行操作详解

小樊
53
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