hashicorp vault pki啟用簽證書

朝澈發表於2024-10-23

僅作為我個人的筆記,具體步驟參考官方文件

檢視當前根證書

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

相關文章