ubuntu中openssl命令行操作指南
小樊
45
2025-12-26 15:57:06
Ubuntu 下 OpenSSL 命令行操作指南
一 安装与版本检查
- 在 Ubuntu 上安装 OpenSSL:
- 更新索引并安装:sudo apt update && sudo apt install openssl
- 检查版本与可用性:
- 说明:大多数 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-256:openssl dgst -sha256 file.txt
- MD5:openssl dgst -md5 file.txt
- 实用建议:
- 优先选择现代算法(如 AES-256、RSA-2048/4096),避免使用 DES 等过时算法。
- 私钥务必妥善保护并设置合适权限(如仅所有者可读:chmod 600 private_key.pem)。
- 对称加密请使用高熵密码,并考虑将密码与密文分开保管。
- 需要同时覆盖多个域名/IP 时,使用证书的 SAN(Subject Alternative Name) 扩展,而不仅依赖 CN。