GCP 负载均衡器 SSL 证书在更改后自行重置

GCP 负载均衡器 SSL 证书在更改后自行重置

所以我需要更换过期的 SSL 证书。不幸的是,负责这项任务的人突然去世了。我没有使用过 google cloud、kuberneted 或 ingress。

如果我转到 Google Cloud 控制台,转到负载均衡器并单击唯一显示的那个,它会显示名为“k8s-ssl-xyz”的证书,这是我需要更改的已过期证书。我尝试在前端设置下编辑此负载均衡器并创建一个新证书。这有效,但几分钟后它又恢复到旧证书。

在 kubernetes 引擎、服务和 ingress 下有一个名为“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

它返回“已更新 [...]”,但它也不起作用。

基本上,我在这里迷路了。我怎样才能更改此证书而不使其自行重置?

答案1

我搞定了。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

我创建了一个包含新证书的新密钥。将secretNameyaml 文件中的密钥更改为密钥的新名称,foo-secret最终彻底更改了证书。

/E:如果想要使用谷歌管理的证书,删除“secretName”条目并将负载均衡器更改为谷歌管理的证书即可。

相关内容