OpenSSL 命令手册

12 页按任务整理的 OpenSSL 3.x 命令:每条都有命令、真实输出示例和参数说明,版本差异和常见坑单独标出。

这是一份按任务组织的 OpenSSL 命令手册:找到要做的事,复制命令,对照输出示例确认结果,再看说明里的关键参数和坑。想弄懂命令背后的原理,顺着链接去看原理文章。

怎么用

每页 8–15 个任务,格式统一:## 标题写任务,第一句给结论,接着是 bash 命令、text 输出示例和说明。各页文件名保持一致:私钥 example.com.key,证书 example.com.crt,中间证书 chain.pem,证书加中间证书 fullchain.pem。宝塔面板、阿里云/腾讯云控制台要求粘贴的“证书(PEM 格式)”一般就是 fullchain.pem 的内容,“密钥”就是私钥文件内容。

开始前先确认自己用的是哪个 OpenSSL:

openssl version
OpenSSL 3.6.1 27 Jan 2026 (Library: OpenSSL 3.6.1 27 Jan 2026)

macOS 自带的 /usr/bin/openssl 其实是 LibreSSL,不少 3.x 参数不支持,建议用 Homebrew 装 OpenSSL 3 后用完整路径调用。Windows 上可以用 Git for Windows 自带的 OpenSSL,或在 WSL 里执行。

会影响结果的版本差异

变化 起始版本 影响的页面
PKCS#12 导出默认改为 AES-256-CBC + PBKDF2 + HMAC-SHA256,旧的 RC2/3DES/SHA-1 要加 -legacy 3.0 PKCS#12、格式转换
-noenc 取代已弃用的 -nodes 3.0 私钥、CSR、自签证书
默认安全级别下禁用 TLS 1.0/1.1,测试时要加 @SECLEVEL=0 3.0 套件与协议
x509、req 支持 -copy_extensions 3.0 私有 CA
内置 ML-KEM、ML-DSA、SLH-DSA,TLS 默认密钥共享包含 X25519MLKEM768 3.5 私钥、连接测试

Windows 老系统导入 PFX 报“密码不正确”、Java 老版本读不出 .p12,多半就是第一行的默认算法变化造成的,解决办法见 PKCS#12 页。

安全提醒

生成私钥请在自己能控制的机器上做,私钥不要提交到代码仓库,也不要把生产环境私钥粘贴到任何网站。ssl.sh 上涉及私钥的工具都在浏览器本地运行,但最安全的私钥是从不离开它所属服务器的那一把。

私钥、CSR 与证书

格式转换与 PKCS#12

验证与连接测试

私有 CA 与排错

常见问题

这些命令需要什么版本的 OpenSSL?

OpenSSL 3.0 及以上。需要更新版本的命令会单独标注,比如生成 ML-KEM、ML-DSA 密钥需要 3.5 及以上。输出示例用 OpenSSL 3.6.1 实际运行得到。

CentOS 7 或宝塔服务器上命令报错怎么办?

CentOS 7 自带 OpenSSL 1.0.2,很多 3.x 参数不认。可以在本地电脑或较新的系统(如 Ubuntu 22.04 及以上,自带 OpenSSL 3.0)上执行,再把生成的文件上传到服务器。

有没有不用敲命令的办法?

有。OpenSSL 命令生成器按表单生成常用命令,证书格式转换在浏览器本地完成格式转换。