Ssl

GCP 負載平衡器 ssl 證書在更改後自行重置

  • October 2, 2019

所以我需要更改過期的 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管理的證書是可行的。

引用自:https://serverfault.com/questions/986404