文章目錄
使用 cert-manager 建立憑證
之前筆記 在 Kubernetes 上安裝 cert-manager 提到為什麼要使用 cert-manager 以及如何安裝 cert-manager,今天就來紀錄一下如何使用 cert-manager 來建立憑證
基本環境說明
- macOS Catalina 10.15.7
docker desktop 3.1.0(51484)
- docker engine 20.10.2
- Kubernetes v1.19.3
Helm chart
- cert-manager v1.1.0
憑證建立方式
建立自簽憑證的 Issuer
kubectl apply -f <(echo " apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: selfsigned-issuer spec: selfSigned: {} ")
使用自簽憑證 Issuer 來建立憑證
要注意 Issue 的 Ready 變成 true 再執行建立憑證,否則憑證 Type 會變成
Opaque
而不是kubernetes.io/tls
kubectl apply -f <(echo ' apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: yowko-tls spec: secretName: yowko-tls dnsNames: - "*.default.svc.cluster.local" - "*.testyowko.com" issuerRef: name: selfsigned-issuer ')
檢查憑證有效性
檢視憑證
確認
.crt
與.key
都正確產生kubectl get secret yowko-tls -o yaml
確認
.crt
有效性kubectl get secrets/yowko-tls -o "jsonpath={.data['tls\.crt']}" | base64 -D | openssl x509 -text -noout
確認
.key
有效性kubectl get secrets/yowko-tls -o "jsonpath={.data['tls\.key']}" | base64 -D | openssl rsa -check
心得
不知道是不是因為 Self Signed 不是正統用法,官網上並沒有完整的使用方式,或者是因為太簡單,所以人家覺得不用寫XD
但除此之外,就我個人使用情境而言覺得官網的文件不是很好用,功能好像都有,文件就提那一、兩句,實際用法都要自己兜,覺得不是很方便,但或許這就是 open source 的常態吧
參考資訊
文章作者 Yowko Tsai
上次更新 2021-08-30
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。