
# 更新集群证书
通常情况下，Kubernetes集群依赖于多个证书链和凭据，这些证书的有效期管理和及时更新对于确保集群及其工作负载的安全性和完整性至关重要。CCE在创建集群时，会自动生成集群证书，用于保障CCE控制平面组件（kube-apiserver、etcd、kube-controller-manager、kube-scheduler等）与集群节点之间通信的安全，同时支持用户指定自有证书，用于认证代理使用，也用于配置kube-apiserver聚合层。当证书即将到期时，如果不能及时更新，会导致集群功能异常，影响业务的正常运行。
CCE集群的证书默认有效期为5年，随着证书到期时间临近，用户需要更新这些证书以避免因证书过期而导致的服务中断。为此，CCE提供了证书更新功能，支持用户在证书到期前通过控制台或API手动触发证书更新操作，同时控制台会在证书到期前发出提醒，在CCE控制台展示证书过期的按钮，提醒用户及时采取行动，保障集群的持续安全运行。
#### 注意事项
- CCE集群证书更新仅支持v1.15.11及以上版本集群，低版本集群需先升级集群。
- 证书更新过程中，API Server访问会短暂中断，可能影响依赖API Server的工作负载，请选择业务低峰的时间段进行更新，以减少业务影响。
- 证书更新过程中，会重启节点上的Kubernetes组件，如果安装了节点故障检测插件可能会产生插件异常的告警，属于正常现象。
- 证书更新过程中，请勿对集群做变更类操作。
- 更新时长受节点数量影响，一般为10\~15分钟，更新成功后，相应证书有效期五年。
- 若集群证书**已经到期**，请联系技术支持处理。
 
#### 更新CCE集群证书
CCE集群证书包含**系统生成的证书** 和**用户自有的证书**，您可以直接更新集群证书，也可以在集群升级过程中同步更新集群证书。
- [更新系统生成的集群证书]
  
  在证书到期前，会在CCE控制台集群列表页或集群概览页面，提示更新证书按钮。您也可以通过站内信、邮件和短信等渠道配置提醒，详情请参见[配置消息提醒]。
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)。
  
  2. 查看控制台上的集群证书到期提醒。如果集群证书到期时间小于180天，集群列表和集群概览页面均会进行提示；如果集群证书到期时间小于30天，访问CCE控制台时还会产生证书到期弹窗提醒。 
     证书到期弹窗提醒
     - ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002701360829.png "点击放大")
       
       
      
     集群列表提示
     - ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002671481150.png "点击放大")
       
       
      
     集群概览页面提示
     - ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002701360831.png "点击放大")
       
       
      
     
     
  
  3. 根据上述CCE控制台上的提示，单击"更新证书"按钮，您需要仔细阅读风险提示，并根据提示完成证书的自动更新。 
     ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/caution_3.0-zh-cn.png)
     若您使用了OIDC（OpenlDConnect），且曾获取过CCE集群签名公钥，您需要在证书更新完成后重新获取，否则会导致OIDC身份认证失效。
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002688580193.png "点击放大")
     
     
     
   
- [更新自有证书]
  若您在创建集群时指定了自有证书，则在自有证书过期前，也会在CCE控制台集群列表页或集群概览页面，提示更新证书按钮，提示规则与[系统生成的集群证书]一致。您可以根据提示上传CA根证书、客户端证书、客户端证书私钥，完成证书的自动更新。
  ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002500929200.png "点击放大")
  
- [集群升级过程中同步更新集群证书]
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)。
  
  2. 单击集群名称进入集群，在左侧选择"集群升级"。
  
  3. 选择集群升级路径后，完成升级前检查、备份流程。
  
  4. 在配置与升级中，完成集群证书配置，选择是否同步更新集群证书。 
     - 更新CCE集群证书：您可以根据当前集群证书的有效期，选择是否在集群升级过程中同步更新CCE集群证书，更新后证书有效期为5年。
       ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/caution_3.0-zh-cn.png)
       若您使用了OIDC（OpenlDConnect），且曾获取过CCE集群签名公钥，您需要在集群升级完成后重新获取，否则会导致OIDC身份认证失效。
       
     
     - 更新自有证书：若您在创建集群时指定了自有证书，则可选择是否更新自有证书。您可以根据提示上传CA根证书、客户端证书、客户端证书私钥，完成证书的自动更新。
     
     
     
     
  
  5. 单击"立即升级"。
   
#### 查看集群证书更新状态
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，在左侧导航栏中选择"集群管理"。
2. 单击集群名称，查看"概览"页面。
3. 找到"运维事件"，查看集群证书更新事件。 
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002701366265.png "点击放大")
   
   
   
 
#### 涉及更新的证书列表
工作节点涉及更新的证书列表如下：
| 证书                                                                                   | 证书路径                                   | 证书有效期                  |
|:---|:---|:---|
| kube-node-tls.crt kube-node-tls.key                      | /var/paas/srv/kubernetes               | 初始证书有效期5年，更新证书后有效期延长5年 |
| kube-proxy-tls.crt kube-proxy-tls.key                   | /var/paas/srv/kubernetes               | 初始证书有效期5年，更新证书后有效期延长5年 |
| kubelet-client-current.pem kubelet-server-current.pem | /opt/cloud/cce/kubernetes/kubelet/pki/ | 过期前自动更新，有效期1年          |
| kubecfg.crt kubecfg_crypto.key                         | /var/paas/srv/kubernetes               | 初始证书有效期5年，更新证书后有效期延长5年 |
   
#### 检查证书到期日期
您可以通过API接口查询集群的证书到期时间，详情请参见[获取指定的集群](https://support.huaweicloud.com/api-cce/cce_02_0238.html)、[获取指定项目下的集群](https://support.huaweicloud.com/api-cce/cce_02_0239.html)。关于如何调用接口，请参见[构造请求](https://support.huaweicloud.com/api-cce/cce_02_0102.html)。
本文以获取指定的集群接口为例，介绍如何检查证书到期日期。该接口URI如下：
**GET /api/v3/projects/{project_id}/clusters/{cluster_id}**
| 参数         | 描述                                                                                    |
|:---|:---|
| project_id | 项目ID，获取方式请参见[如何获取接口URI中参数](https://support.huaweicloud.com/api-cce/cce_02_0271.html)。 |
| cluster_id | 集群ID，获取方式请参见[如何获取接口URI中参数](https://support.huaweicloud.com/api-cce/cce_02_0271.html)。 |
   
获取指定的集群的请求体示例如下：
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002486032240.png "点击放大")
 #### 配置消息提醒
您可以通过如下方式添加集群证书过期提醒的消息接收人，支持配置邮箱、短信、站内信方式：
1. 单击控制台右上角![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002500666922.png "点击放大")按钮进入消息中心，选择"消息接收管理 \> 接收人管理"，单击"添加接收人"，添加需要接收消息的联系人及联系方式。
   
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002500827174.png "点击放大")
   
   
   
2. 单击消息接收配置，选择"运维消息 \> 产品升级通知"，单击"修改消息接收人"。 
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002532587817.png "点击放大")
   
   
   
3. 勾选需要接收消息的账号联系人，单击"确定"即可。 
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002532587989.png "点击放大")
   
   
   
 
#### 常见问题
- **集群证书更新后， 使用OIDC实现工作负载身份认证失效**
  用户在证书更新后，使用老证书会出现验签失败，需要更新集群公钥。
  **解决方案：**
  参考[在CCE集群中使用OIDC实现工作负载身份认证（旧版IAM）](https://support.huaweicloud.com/usermanual-cce/cce_10_2188.html)文档中的[步骤一](https://support.huaweicloud.com/usermanual-cce/cce_10_2188.html#cce_10_2188__zh-cn_topic_0000001352394612_zh-cn_topic_0000001280331044_section5937204594820)重新获取CCE集群的签名公钥，并参考[步骤二](https://support.huaweicloud.com/usermanual-cce/cce_10_2188.html#cce_10_2188__zh-cn_topic_0000001352394612_zh-cn_topic_0000001280331044_section18167152865013)更新IAM中的身份提供商信息中的签名公钥。
  
 
