更新时间:2024-10-17 GMT+08:00
分享

HTTPS类型负载均衡证书一致性检查异常处理

检查项内容

检查HTTPS类型负载均衡所使用的证书,是否在ELB服务侧被修改。

解决方案

该问题的出现,一般是由于用户在CCE中创建HTTPS类型Ingress后,直接在ELB证书管理功能中修改了Ingress引用的证书,导致CCE集群中存储的证书内容与ELB侧不一致,进而导致升级后ELB侧证书被覆盖。

  1. 请登录ELB服务控制台,在“弹性负载均衡 > 证书管理”界面找到该证书,在证书描述字段中找到对应的secret_id。

    图1 查询证书

    该secret_id即为集群中对应Secret的metadata.uid字段,可以根据该uid查询集群中Secret的名称。

    您可以通过以下kubectl命令进行查询,其中<secret_id>请自行替换。
    kubectl get secret --all-namespaces -o jsonpath='{range .items[*]}{"uid:"}{.metadata.uid}{" namespace:"}{.metadata.namespace}{" name:"}{.metadata.name}{"\n"}{end}' | grep <secret_id>

  2. 您可以将Ingress使用的证书替换为ELB服务器证书,即可通过ELB控制台创建或编辑该证书。

    1. 请登录CCE控制台,前往“服务”页面并选择“路由”页签,找到使用该证书的路由,单击“更多 > 更新”。注意,这里可能有多个Ingess引用该证书,所涉及的Ingress都需要进行更新,可以根据Ingress的yaml文件的spec.tls中secretName字段判断是否引用该Secret中的证书。

      您可以通过以下kubectl命令进行查询引用该证书的Ingress,其中<secret_name>请自行替换。

      kubectl get ingress --all-namespaces -o jsonpath='{range .items[*]}{"namespace:"}{.metadata.namespace}{" name:"}{.metadata.name}{" tls:"}{.spec.tls[*]}{"\n"}{end}' | grep <secret_name>
    2. 在监听器配置中,选择服务器证书来源为“ELB服务器证书”,该证书可通过ELB控制台创建或编辑,单击“确定”。
    3. 在“配置与密钥”界面删除对应的Secret,删除前建议先备份。

相关文档