一个梦想环游世界的DevOps
——快来看看呀

仅作为我个人的笔记,具体步骤参考官方文档

查看当前根证书

curl -k https://vault.com.cn:8206/v1/pki/ca/pem

  

查看当前证书的中间证书

curl -k https://vault.com.cn:8206/v1/pki_int/ca/pem

  

创建证书

#删除现有证书
vault delete pki/root
#写入新证书
vault write pki/root/generate/exported common_name="vxx.com.cn" ttl=8760h > root_ca
#查看是否更新成功
curl -k https://vault.com.cn:8206/v1/pki/ca/pem
#删除现有中间证书
vault delete pki_int/root
#写入新的中间证书
vault write pki_int/intermediate/generate/exported common_name="vxx.com.cn Intermediate Authority" ttl=8760h > int_ca

#从int_ca中取出CSR 写入到新文件
> -----BEGIN CERTIFICATE REQUEST-----
> MIICdTCCAV0CAQAwMDEuMCwGA1UEAxMldmdjc2Vydi5jb20uY24gSW50ZXJtZWRp
......
> BK2CfThhxNuxwOBHHCoViVTvFrANizs+LGHbeoOe
> -----END CERTIFICATE REQUEST-----
 #签名CSR
vault write -format=json pki/root/sign-intermediate csr=@pki_int.csr format=pem_bundle ttl=8760h | jq -r '.data.certificate' > signed_cert.pem
#写入签名后的中间证书
vault write pki_int/intermediate/set-signed certificate=@signed_cert.pem

 这一步比较重要,因为有些时候更新了证书后发现实际请求中并没有更新,是因为没有在vault中切换issuer,这是vault的一个新 feature

#list 所有的issuer id
curl --request LIST -k https://vault.com.cn:8206/v1/pki_int/issuers | jq

#查看目标issuer id 的值
curl -k 'https://vault.com.cn:8206/v1/pki_int/issuer/0503ef3a-14d0-07ec-94cf-1f87ced76c56/pem' | keytool -printcert

#定义issuer 的default:
curl --header "X-Vault-Token: hvs.B5JfelhwIuMBWx5Cdd8vAeQu" --request POST --data "@issuers.json" -k "https://vault.com.cn:8206/v1/pki_int/config/issuers"
issuers.json example:
{
  "default": "c332dac1-d0db-777f-c81e-954d423182d3"
}

#删除掉没用的issuer id
curl --header "X-Vault-Token: hvs.B5JfelhwIuMBWx5Cdd8vAeQu" --request DELETE -k "https://vault.com.cn:8206/v1/pki_int/issuer/11599cbe-797b-14bf-1a55-e96e222786d6"

 后面在vault这一块的证书就已经更新完成了,根据后面你的需求自己进行调整

 

在我的实际应用中,将中间证书写入到了application中方便后面进行ssl链接,并且联合cert-manager作为了k8s集群中的cluster issuer

posted on 2024-10-23 14:57  朝澈  阅读(8)  评论(0编辑  收藏  举报