程序员做网站外快,wordpress在哪里设置编辑器,广州新塘排名seo优化公司,建快递网站需要多少钱一.用 OpenSSL 依据已有的自签名 CA 注销签发的证书的步骤
1. 准备工作 你得有自签名 CA 的私钥#xff08;通常是 .key 文件#xff09;、CA 证书#xff08;通常是 .crt 文件#xff09;以及证书吊销列表#xff08;CRL#xff09;文件。若还没有 CRL 文件#xff0c…一.用 OpenSSL 依据已有的自签名 CA 注销签发的证书的步骤
1. 准备工作 你得有自签名 CA 的私钥通常是 .key 文件、CA 证书通常是 .crt 文件以及证书吊销列表CRL文件。若还没有 CRL 文件就需要创建一个。
2. 创建初始 CRL 文件
要是还没有 CRL 文件就用以下命令创建一个
openssl ca -gencrl -keyfile ca.key -cert ca.crt -out crl.pem
ca.key这是自签名 CA 的私钥文件。ca.crt这是自签名 CA 的证书文件。crl.pem这是生成的证书吊销列表文件 3.吊销证书
你要吊销某个证书时得知道该证书的序列号。可以用以下命令查看证书序列号 openssl x509 -noout -serial -in certificate.crtopenssl ca -revoke certificate.crt -keyfile ca.key -cert ca.crt
certificate.crt你要吊销的证书文件。ca.key自签名 CA 的私钥文件。ca.crt自签名 CA 的证书文件。 4.更新 CRL 文件
openssl ca -gencrl -keyfile ca.key -cert ca.crt -out crl.pem
ca.key自签名 CA 的私钥文件。ca.crt自签名 CA 的证书文件。crl.pem更新后的证书吊销列表文件。
二.要使用 OpenSSL 吊销 Kubernetesk8s的 kubeconfig 里的用户证书 1. 确定相关文件和信息
CA 私钥一般存储在 Kubernetes 集群的控制平面节点上通常路径为 /etc/kubernetes/pki/ca.key。 • CA 证书同样位于控制平面节点路径通常是 /etc/kubernetes/pki/ca.crt。 • 用户证书能从 kubeconfig 文件里提取。kubeconfig 文件一般在 ~/.kube/config你可以用下面的命令提取用户证书
kubectl config view --raw -o jsonpath{.users[?(.nameUSER_NAME)].user.client-certificate-data} | base64 -d user.crt
这里的 USER_NAME 要替换成 kubeconfig 里实际的用户名.
2. 查看证书序列号
使用 OpenSSL 查看要吊销的用户证书的序列号
openssl x509 -noout -serial -in user.crt
此命令会输出证书的序列号后续吊销证书时会用到。
3. 检查并创建 CRL 文件
如果还没有证书吊销列表CRL文件就需要创建一个。若已有可跳过此步骤。
openssl ca -gencrl -keyfile /etc/kubernetes/pki/ca.key -cert /etc/kubernetes/pki/ca.crt -out crl.pem
这里的 crl.pem 就是生成的 CRL 文件。
4. 吊销证书
利用 OpenSSL 的 ca 命令吊销用户证书
openssl ca -revoke user.crt -keyfile /etc/kubernetes/pki/ca.key -cert /etc/kubernetes/pki/ca.crt
运行此命令后用户证书就会被标记为已吊销.
5. 更新 CRL 文件
吊销证书后需要更新 CRL 文件以包含新吊销的证书
openssl ca -gencrl -keyfile /etc/kubernetes/pki/ca.key -cert /etc/kubernetes/pki/ca.crt -out crl.pem 6.查看 CRL 的基本信息
openssl crl -noout -text -in crl.pem openssl crl这是 OpenSSL 用于处理 CRL 的命令。
• -noout表示不输出 CRL 的二进制内容。 • -text将 CRL 的内容以文本形式输出。 • -in crl.pem指定要查看的 CRL 文件这里假设 CRL 文件名为 crl.pem你可根据实际情况替换
查看 CRL 的详细吊销条目
openssl crl -noout -revoked -in crl.pem -revoked此选项用于只输出 CRL 中的吊销条目信息
8. 在 Kubernetes 中使用 CRL
要让 Kubernetes 集群使用更新后的 CRL 来验证客户端证书需要在 API Server 的配置里添加 CRL 文件的路径。
修改 API Server 配置
编辑 API Server 的静态 Pod 配置文件通常位于 /etc/kubernetes/manifests/kube-apiserver.yaml。在 spec.containers[].command 部分添加以下参数
- --client-ca-file/etc/kubernetes/pki/ca.crt
- --crl-file/path/to/crl.pem
重启 API Server
保存配置文件后Kubernetes 会自动重启 API Server 以应用新配置。
9.重新生成新的 CRL 且不包含已吊销证书
要保证 OpenSSL 配置文件通常是 /etc/pki/tls/openssl.cnf的 dir 参数指向 CA 工作目录
手动修改索引文件
OpenSSL 借助 index.txt 文件来记录证书状态。你可以手动编辑该文件把要恢复的证书状态从 R已吊销改成 V有效。
vim /etc/pki/CA/index.txt 找到要恢复的证书条目将开头的 R 改成 V并删除与吊销相关的时间等信息。
重新生成 CRL
openssl ca -gencrl -keyfile ca.key -cert ca.crt -out new_crl.pem
ca.key 是 CA 私钥文件。ca.crt 是 CA 证书文件。new_crl.pem 是新生成的 CRL 文件。
替换旧的 CRL 把新生成的 CRL 文件替换掉旧的 CRL 文件这样在验证证书时就不会再把这些证书当作已吊销。
10. 废弃当前 CRL 并使用新的 CRL 管理
备份当前的 index.txt 文件然后清空该文件
sudo cp /etc/pki/CA/index.txt /etc/pki/CA/index.txt.bak
sudo truncate -s 0 /etc/pki/CA/index.txt
重置序列号和 CRL 编号
重置 serial 和 crlnumber 文件
echo 01 | sudo tee /etc/pki/CA/serial
echo 01 | sudo tee /etc/pki/CA/crlnumber 生成新的 CRL
将新生成的 CRL 文件应用到证书验证环境中
7. 在吊销证书的过程中出现的问题
问题1Using configuration from /etc/pki/tls/ openssl.cnf /etc/pki/CA/index.txt: No such file or directory
问题2Using configuration from /etc/pki/tls/ openssl.cnf /etc/pki/CA/crlnumber: No such file or directory error while loading CRL number
解决方式
1创建 CA 目录
首先确保 CA 工作目录存在通常是 /etc/pki/CA
mkdir -p /etc/pki/CA
2创建索引文件
创建 index.txt 文件该文件用于记录证书的状态信息初始为空
touch /etc/pki/CA/index.txt
3 创建 crlnumber 文件
echo 01 | sudo tee /etc/pki/CA/crlnumber4创建序列号文件
创建 serial 文件并为其设置一个初始的序列号例如 01
echo 01 | sudo tee /etc/pki/CA/serial
5 确认文件权限
要保证 OpenSSL 命令有足够的权限来访问和修改 /etc/pki/CA 目录下的文件你可以通过以下命令修改文件和目录的权限
sudo chmod -R 700 /etc/pki/CA
5调整 OpenSSL 配置文件可以不变
确保 /etc/pki/tls/openssl.cnf 配置文件中的相关设置无误尤其是 dir 参数它应指向 CA 工作目录。你可以通过以下命令编辑该文件。
在文件中找到 [ CA_default ] 部分确认 dir 参数如下
[ CA_default ]
dir /etc/pki/CA # Where everything is kept