k8s吊销证书

您提到的 `--certificate-blacklist` 参数确实不存在于现代 Kubernetes 版本中(该参数在非常旧的实验性版本中短暂出现过)。以下是针对 **现代 Kubernetes 版本(v1.20+)** 的标准证书吊销方案:

---

### **正确吊销证书的 3 种方法(2023年最新实践)**

#### 方法 1:使用 Certificate Revocation List (CRL) - **推荐方案**
```bash
# 1. 创建吊销数据库(首次运行时)
sudo touch /etc/kubernetes/pki/index.txt
echo 01 | sudo tee /etc/kubernetes/pki/crlnumber

# 2. 吊销证书(需提供证书文件)
sudo openssl ca -revoke /path/to/revoke.crt \
-keyfile /etc/kubernetes/pki/ca.key \
-cert /etc/kubernetes/pki/ca.crt \
-config <(echo '
[ ca ]
default_ca = CA_default
[ CA_default ]
database = /etc/kubernetes/pki/index.txt
crlnumber = /etc/kubernetes/pki/crlnumber
')

# 3. 生成CRL文件
sudo openssl ca -gencrl \
-out /etc/kubernetes/pki/ca.crl \
-keyfile /etc/kubernetes/pki/ca.key \
-cert /etc/kubernetes/pki/ca.crt

# 4. 启用API Server的CRL检查
sudo vi /etc/kubernetes/manifests/kube-apiserver.yaml
```
添加参数:
```yaml
- --tls-crl-file=/etc/kubernetes/pki/ca.crl
```

#### 方法 2:通过 CSR API 吊销(适用于动态证书)
```bash
# 1. 查看待吊销证书的CSR
kubectl get certificatesigningrequests

# 2. 拒绝CSR(等效吊销)
kubectl certificate deny <csr-name>
```

#### 方法 3:核武器选项 - **更换整个CA**
```bash
# 1. 备份旧CA
sudo cp -r /etc/kubernetes/pki/ /etc/kubernetes/pki-backup/

# 2. 生成新CA
sudo kubeadm certs renew all --cert-dir /etc/kubernetes/pki

# 3. 重启所有组件
sudo systemctl restart kubelet
```

---

### **关键验证步骤**
```bash
# 验证CRL是否包含被吊销证书
openssl crl -in /etc/kubernetes/pki/ca.crl -noout -text | grep "Serial Number"

# 测试吊销效果(应返回Forbidden)
kubectl --client-certificate=revoked.crt --client-key=revoked.key get nodes
```

---

### **各方案对比**
| 方案 | 适用场景 | 优势 | 缺点 |
|---------------|-------------------------|-------------------------|-----------------------|
| **CRL吊销** | 精准吊销特定证书 | 不影响其他证书 | 需手动维护CRL文件 |
| **CSR吊销** | 动态颁发的证书 | 原生K8s支持 | 仅适用于CSR API证书 |
| **更换CA** | CA私钥泄露等严重情况 | 彻底解决问题 | 影响所有证书 |

---

### **常见问题解答**
**Q:为什么我的集群没有`--certificate-blacklist`参数?**
A:该参数已在2018年左右的版本中被移除,现代版本统一使用标准CRL方案。

**Q:如何让CRL自动更新?**
A:可以设置cronjob定期执行吊销和CRL生成:
```bash
0 * * * * /usr/bin/openssl ca -gencrl -out /etc/kubernetes/pki/c

posted on 2025-07-05 21:42  吃草的青蛙  阅读(35)  评论(0)    收藏  举报

导航