rsa 命令能做什么
该命令用于读取、检查与转换 RSA 私钥:打印密钥参数、导出公钥、去除口令,以及通过比对模数确认私钥与证书是否配对。3.x 中它仍作为兼容入口保留,底层由通用的 pkey 框架承担。它只处理 RSA 密钥,EC 与 Ed25519 密钥需要换用通用命令处理。
基本信息
| 查看参数 | openssl rsa -in key.pem -noout -text |
|---|---|
| 一致性检查 | -check 校验密钥内部参数是否自洽 |
| 导出公钥 | -pubout -out pub.pem |
| 去口令 | 转换后立即收紧文件权限 |
典型使用场景
- 部署前核对私钥与证书是否配对
- 排查握手失败:确认服务加载的是否为正确私钥
- 从私钥导出公钥,供对端配置或写入授权文件
- 处理带口令的旧私钥,转换为服务可读取的形式
- 审计:输出密钥长度与参数,核对是否符合基线
比对私钥与证书匹配
比对私钥与证书匹配
openssl rsa -in key.pem -noout -modulus | openssl dgst -sha256 # 私钥模数指纹
openssl x509 -in cert.pem -noout -modulus | openssl dgst -sha256 # 证书模数指纹
# 两行输出完全一致即表示配对
openssl rsa -in key.pem -noout -check # 校验密钥参数自洽常用动作
| 目的 | 命令要点 | 注意 |
|---|---|---|
| 查看参数 | -noout -text | 输出含私钥参数,勿入日志 |
| 导出公钥 | -pubout | 公钥可公开,私钥不可 |
| 去口令 | -out 新文件 | 仅限受控存放场景 |
| 加密私钥 | -aes256 | 转换后需口令才能读取 |
证书与私钥是否配对可以直接比对模数指纹,两边输出完全一致即匹配;这比反复重启服务观察报错更快也更可靠。
操作注意事项
- 输出可能包含私钥参数,不要重定向到共享日志
- 去口令后的明文私钥要立刻设权限并限制目录访问
- 生产环境优先使用现代算法,而非长期维持旧密钥长度
- 转换后做一次签名验证回路,确认密钥可用
私钥参数出现在终端历史、脚本日志或工单截图里,等同于私钥泄露;操作带口令私钥时应避免会把内容写入记录的方式。