【问题标题】:SSL Certificate not updating in Google Cloud Console GKESSL 证书未在 Google Cloud Console GKE 中更新
【发布时间】:2021-05-25 14:40:55
【问题描述】:

我的客户收到了一项与在现场添加 SSL 证书相关的任务。该网站已经安装了一个 Let's encrypt SSL 证书,该证书现已过期(我通过单击浏览器“不安全”在您输入的网址左侧显示的红色通知获得了此信息,并且然后进入弹出窗口中的证书选项)。 screenshot of popup

我的客户网站托管在谷歌云上。该站点在 1 个实例组中有 4 个 vm 实例。它还有一个 TCP 负载均衡器,带有 1 个目标池和 targetpool - targetinstance 作为后端类型,并且在后端显示了 4 个以上 vm 实例。负载均衡器的前端配置包含 TCP 作为协议,Premium 作为网络层和端口选项中的 80-443 值。 screenshot of frontend configuration

4 个 VM 实例中的每一个都在 “in use by” 列中显示两个值,一个是实例组名称,第二个是 tcp 负载均衡器名称。在实例组中,它显示 in use by 为“生产”,点击哪个进入生产集群。

然后我从连接选项打开集群外壳并运行此命令。

kubectl get secrets/tls-retail -o yaml

在这里我发现这个秘密与 SSL 和 tls.crt 字段中的值(当 base64 解码并从证书解码器检查时)显示的到期日期与浏览器弹出窗口中显示的相同

然后我更改了同一个秘密文件中的 tls.crt 值并使用下面的代码保存它,但它没有受到任何影响。

EDITOR=nano kubectl edit secrets tls-retail

从这个 stackoverflow 链接 (How to restart a GCP Ingress Item To Use Updated Secret) 我发现它需要 10-20 分钟才能生效,但即使在 1 到 2 小时后也没有任何影响。你能指导我为什么这个变化没有任何影响。或者如果有人可以指导我如何在上述情况下使用谷歌管理的 ssl 证书,因为我是谷歌控制台和 GKE 的新手。

谢谢

【问题讨论】:

    标签: ssl google-cloud-platform google-kubernetes-engine


    【解决方案1】:

    当您转到网络服务 > 负载平衡并单击高级菜单链接时,您可以单击证书选项卡以查看已将哪些证书添加到项目中。你的新证书在吗?它是否被您的 Ingress 列为正在使用?

    这个集群是如何部署的?入口是如何部署的?这是使用“clickops”(使用 Web 界面)还是使用 IAC(如 Deployment Manager(GCP 产品)或 Terraform)部署的?当我需要轮换我的证书时,我:

    1. 在“负载均衡”界面的高级菜单中点击“创建SSL证书”,将新版本的证书添加到项目中
    2. 在我在步骤 1 中访问的那个界面中上传了新的证书文件。我给它起了一个有意义的名称(我们称之为“my-new-cert”)
    3. 更新了我的 Ingress 的 Deployment Manager 配置文件,将 properties.metadata.annotations.ingress.gcp.kubernetes.io/pre-shared-cert 设置为 my-new-cert
    4. 使用 Deployment Manager 命令重新部署了入口。

    要记住的另一件事是您链接到的该线程中的第二条评论 - 它提到了如果证书无效,GKE 将不会安装证书这一事实。我建议使用 OpenSSL - here's a relevant thread 验证证书链,这可能对您有帮助。

    == 编辑添加 == 在 GCP Console 中,您还可以转到 Kubernetes Engine > Services & Ingress > “Ingress” 选项卡,单击有问题的 ingress,然后单击顶部的 Edit 链接以更新其 YAML(使用新的名称您已添加到项目中的证书)。如果您使用某种 IAC 来部署此入口,我不推荐这种方法,因为它基本上等同于猴子补丁,并且如果重新部署 IAC 将被覆盖。不过你可以试试。由于我将 IAC 用于我的东西,我没有测试过这种方法,但我猜它可编辑的。

    【讨论】:

    • 谢谢 1 我去加载 Bal -> adv 菜单 -> 证书选项卡没有显示任何证书。然后我从“创建 SSL 证书”选项创建了一个证书。你能告诉我在哪里上传它,入口的部署管理器配置文件在哪里以及如何重新部署入口。 2 我刚刚对 tls.crt 值进行了一些测试更改,以便我可以确认这是实际位置,但它没有显示这些更改的任何影响 3 我转到入口选项卡并选择 retail入口(因为它在前端列中显示我的实际网址)但没有得到更新的位置和内容sc
    • @AliAhmed 你如何重新部署入口实际上取决于它最初是如何部署的。它是用 Terraform 创建的吗?部署经理?这就是我不具体的原因。如果您想直接应用您在系统中创建的证书,请转到控制台 > 网络服务 > 负载平衡,然后单击与您的入口关联的 LB。单击顶部的编辑,然后单击前端配置。单击铅笔图标。您的新证书应该在“证书”下拉菜单中可用。进行更改并单击“更新”按钮。这将导致停机。
    猜你喜欢
    • 2018-08-02
    • 2022-10-15
    • 2019-09-20
    • 1970-01-01
    • 2012-01-17
    • 2022-11-27
    • 2015-05-15
    • 2018-10-12
    • 1970-01-01
    相关资源
    最近更新 更多