# 私钥（Private Key）是什么？定义、例子与常见误区

> 私钥是非对称密钥对中保密的那一半，TLS 服务器用它证明自己拥有证书里的那把公钥。

Source: https://ssl.sh/zh/glossary/private-key/
Last updated: 2026-11-10

私钥是 [RSA](https://ssl.sh/zh/glossary/rsa/)、ECDSA 等非对称密钥对中必须保密的一半。与之配对的[公钥](https://ssl.sh/zh/glossary/public-key/)写在证书里公开，私钥则留在服务器上或 [HSM](https://ssl.sh/zh/glossary/hsm/) 里。TLS 1.3 握手时，服务器用私钥对握手记录签名（CertificateVerify 消息），证明自己是证书的合法持有者；真正加密数据的会话密钥则来自另一次临时密钥交换。

## 为什么重要
谁拿到私钥，谁就能在证书有效期内冒充这个网站。私钥泄露后必须吊销证书，并用新私钥重新申请，否则新证书和旧证书一样不安全。使用 ECDHE 这类前向安全的密钥交换时，私钥被盗也解不开以前录下的流量；而老式的 RSA 密钥交换做不到这一点。私钥文件只应让服务账号可读，不要出现在备份、工单、聊天记录和代码仓库里，把 .key 文件提交到公开的 Git 仓库是常见的泄露途径。在宝塔面板部署证书时，"密钥(KEY)"一栏粘贴的就是私钥。

## 例子
```bash
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out example.com.key
chmod 600 example.com.key
# 检查私钥和证书是否配对：两个哈希值必须一致
openssl pkey -in example.com.key -pubout | openssl sha256
openssl x509 -in example.com.crt -noout -pubkey | openssl sha256
```

## 常见误区
- **CA 手里有我的私钥。** 自己在本地生成 CSR 时，CA 只见过公钥。
- **泄露后吊销证书就够了。** 还必须换一对新密钥。
- **给私钥加了密码就可以随便放。** 服务器启动时通常需要解密后的私钥，文件权限和访问控制才是主要防线。

## 相关术语

- [公钥](https://ssl.sh/zh/glossary/public-key/): 公钥是非对称密钥对中可以公开的一半，写在证书里，供他人验证由对应私钥生成的签名。
- [KEY 文件](https://ssl.sh/zh/glossary/key-file/): KEY 文件是按惯例存放私钥的 .key 文件，通常为 PEM 编码，但扩展名本身并不说明里面的具体格式。
- [CSR](https://ssl.sh/zh/glossary/csr/): CSR 是证书签名请求，包含申请者的公钥和希望写入证书的身份信息，用私钥签名后提交给 CA 以申请证书。
- [HSM](https://ssl.sh/zh/glossary/hsm/): HSM 是一种防篡改的硬件设备，在内部生成、保存并使用密钥，私钥不会以明文形式离开设备。
- [密钥轮换](https://ssl.sh/zh/glossary/key-rotation/): 密钥轮换是按计划或在安全事件后，用新生成的密钥替换旧密钥，以限制密钥泄露造成损失的做法。
- [前向保密](https://ssl.sh/zh/glossary/forward-secrecy/): 前向保密是密钥交换的一种安全属性：即使服务器的长期私钥日后泄露，过去连接的会话密钥也不会因此暴露。
- [证书吊销](https://ssl.sh/zh/glossary/revocation/): 证书吊销是 CA 在证书到期前宣布其作废的操作，通过 CRL 或 OCSP 对外公布，使客户端不再信任这张证书。
