温馨提示×

ubuntu中openssl命令行操作指南

小樊
45
2025-12-26 15:57:06
栏目: 云计算

Ubuntu 下 OpenSSL 命令行操作指南

一 安装与版本检查

  • Ubuntu 上安装 OpenSSL:
    • 更新索引并安装:sudo apt update && sudo apt install openssl
  • 检查版本与可用性:
    • 查看版本:openssl version
  • 说明:大多数 Ubuntu 系统默认已预装 OpenSSL,如未安装按上述命令安装即可。

二 对称加密与解密

  • 使用 AES-256-CBC 加密文件(会提示输入密码,建议配合 -salt 使用):
    • 加密:openssl enc -aes-256-cbc -salt -in file.txt -out file.txt.enc
    • 解密:openssl enc -d -aes-256-cbc -in file.txt.enc -out file_decrypted.txt
  • 生成强随机密码(用于对称加密):
    • 生成 32 字节 Base64 密码:openssl rand -base64 32
  • 提示:对称加密适合大文件;请妥善保存密码,丢失将无法恢复数据。

三 非对称加密与密钥管理

  • 生成 RSA 密钥对(推荐 2048 位 或更高):
    • 生成私钥:openssl genpkey -algorithm RSA -out private_key.pem -aes256
    • 导出公钥:openssl rsa -pubout -in private_key.pem -out public_key.pem
  • 使用公钥加密、私钥解密(适合小数据,如对称密钥的传输):
    • 加密:openssl rsautl -encrypt -inkey public_key.pem -pubin -in file.txt -out file.txt.enc
    • 解密:openssl rsautl -decrypt -inkey private_key.pem -in file.txt.enc -out file_decrypted.txt
  • 兼容旧版写法(如系统仍提供 genrsa):
    • 生成私钥:openssl genrsa -out private.pem 2048
    • 导出公钥:openssl rsa -in private.pem -pubout -out public.pem
  • 提示:RSA 加密速度较慢,通常只用于加密对称密钥或小块数据。

四 证书与 CSR 常用操作

  • 生成自签名证书(一步到位,含私钥与证书):
    • 示例:openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
    • 使用 -subj 指定主题信息(可避免交互):
      • 示例:openssl req -x509 -days 365 -newkey rsa:4096 -keyout key.pem -out certificate.pem -subj “/C=US/ST=CA/L=San/CN=*.example.com/emailAddress=localhost@oracle.com”
  • 生成私钥与 CSR(提交给 CA 申请证书):
    • 生成私钥:openssl genpkey -algorithm RSA -out server.key 2048
    • 生成 CSR:openssl req -new -key server.key -out server.csr
  • 使用私钥签发证书(模拟 CA 自签或内部签发):
    • 签发:openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 365
  • 查看证书信息:
    • 查看:openssl x509 -in cert.pem -text -noout
  • 说明:生产环境建议使用受信任 CA 签发的证书;自签名证书适用于测试或内网场景。

五 散列校验与实用建议

  • 计算文件摘要(校验完整性与防篡改):
    • SHA-256openssl dgst -sha256 file.txt
    • MD5openssl dgst -md5 file.txt
  • 实用建议:
    • 优先选择现代算法(如 AES-256RSA-2048/4096),避免使用 DES 等过时算法。
    • 私钥务必妥善保护并设置合适权限(如仅所有者可读:chmod 600 private_key.pem)。
    • 对称加密请使用高熵密码,并考虑将密码与密文分开保管。
    • 需要同时覆盖多个域名/IP 时,使用证书的 SAN(Subject Alternative Name) 扩展,而不仅依赖 CN

0