# OpenSSL 命令手册：按任务查命令，附输出示例

> 按任务整理的 OpenSSL 3.x 常用命令：私钥、CSR、自签证书、格式转换、PFX、证书链验证、s_client 连接测试、OCSP/CRL 和私有 CA。

Source: https://ssl.sh/zh/cookbook/
Last updated: 2026-11-10

这是一份按任务组织的 OpenSSL 命令手册：找到要做的事，复制命令，对照输出示例确认结果，再看说明里的关键参数和坑。想弄懂命令背后的原理，顺着链接去看[原理文章](https://ssl.sh/zh/learn/how-tls-works/)。

## 怎么用

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

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

```bash
openssl version
```

```text
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](https://ssl.sh/zh/cookbook/pkcs12/)、[格式转换](https://ssl.sh/zh/cookbook/convert-formats/) |
| `-noenc` 取代已弃用的 `-nodes` | 3.0 | [私钥](https://ssl.sh/zh/cookbook/generate-keys/)、[CSR](https://ssl.sh/zh/cookbook/csr/)、[自签证书](https://ssl.sh/zh/cookbook/self-signed/) |
| 默认安全级别下禁用 TLS 1.0/1.1，测试时要加 `@SECLEVEL=0` | 3.0 | [套件与协议](https://ssl.sh/zh/cookbook/ciphers-and-protocols/) |
| `x509`、`req` 支持 `-copy_extensions` | 3.0 | [私有 CA](https://ssl.sh/zh/cookbook/private-ca/) |
| 内置 ML-KEM、ML-DSA、SLH-DSA，TLS 默认密钥共享包含 X25519MLKEM768 | 3.5 | [私钥](https://ssl.sh/zh/cookbook/generate-keys/)、[连接测试](https://ssl.sh/zh/cookbook/test-connections/) |

Windows 老系统导入 PFX 报“密码不正确”、Java 老版本读不出 .p12，多半就是第一行的默认算法变化造成的，解决办法见 [PKCS#12 页](https://ssl.sh/zh/cookbook/pkcs12/)。

## 安全提醒

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