Ssl
GCP 負載平衡器 ssl 證書在更改後自行重置
所以我需要更改過期的 SSL 證書。不幸的是,負責這項任務的人突然去世了。我沒有使用Google云、kuberneted 或入口的經驗。
如果我去Google云控制台,負載均衡器並點擊顯示的唯一一個,它會顯示名為“k8s-ssl-xyz”的證書,這是我需要更改的過期證書。我嘗試在前端設置下編輯這個負載均衡器並創建一個新證書。這有效,但幾分鐘後它又恢復到舊證書。
在 kubernetes 引擎、服務和入口下,有一個名為“basic-ingress4”的服務。它的 yaml 文件包含一行說明:
ingress.kubernetes.io/ssl-cert: k8s-ssl-xyz
我嘗試將“k8s-ssl-xyz”更改為我之前創建的證書的名稱,但它也會在一段時間後恢復為舊證書。
gcloud beta compute ssl-certificates list
回報:
NAME TYPE CREATION_TIMESTAMP EXPIRE_TIME MANAGED_STATUS k8s-ssl-xyz 2019-10-01 2019-08-15 newcert MANAGED 2019-09-30 2019-12-29 ACTIVE x.yz.de: ACTIVE
我也試過
gcloud compute target-https-proxies update k8s-tps-xyz --ssl-certificates newcert
它返回“更新
$$ … $$“但它也沒有工作。 基本上,我在這裡迷路了。如何在不重置自身的情況下更改此證書?
我解決了。basic-ingress4 服務在它的 yaml 中有一個名為“spec->tls->secretName”的條目。執行該命令會
kubectl get secrets
返回一個具有此名稱的密鑰。kubectl describe secret/secretname
返回它確實是我想為其更改秘密的主機的 tls 秘密。所以通過做
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /tmp/tls.key -out /tmp/tls.crt -subj "/CN=foo.bar.com"
其次是
kubectl create secret tls foo-secret --key /tmp/tls.key --cert /tmp/tls.crt
我創建了一個包含新證書的新密鑰。將 yaml 文件中的密鑰更改為
secretName
密鑰的新名稱,foo-secret
最終永久更改了證書。/E:如果想使用Google管理的證書,刪除“secretName”條目並將負載均衡器更改為Google管理的證書是可行的。