×

配置证书轮换参数以替换现有证书。

配置证书轮换

您可以在 OpenShift 虚拟化安装期间在 Web 控制台中执行此操作,或者在安装后在 `HyperConverged` 自定义资源 (CR) 中执行此操作。

步骤
  1. 通过运行以下命令打开 `HyperConverged` CR

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
  2. 编辑 `spec.certConfig` 字段,如下例所示。为避免系统超载,请确保所有值都大于或等于 10 分钟。所有值都应表示为符合 golang `ParseDuration` 格式 的字符串。

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: openshift-cnv
    spec:
      certConfig:
        ca:
          duration: 48h0m0s
          renewBefore: 24h0m0s (1)
        server:
          duration: 24h0m0s  (2)
          renewBefore: 12h0m0s  (3)
    1 `ca.renewBefore` 的值必须小于或等于 `ca.duration` 的值。
    2 `server.duration` 的值必须小于或等于 `ca.duration` 的值。
    3 `server.renewBefore` 的值必须小于或等于 `server.duration` 的值。
  3. 将 YAML 文件应用到您的集群。

证书轮换参数故障排除

删除一个或多个 `certConfig` 值会导致它们恢复为默认值,除非默认值与以下条件之一冲突

  • `ca.renewBefore` 的值必须小于或等于 `ca.duration` 的值。

  • `server.duration` 的值必须小于或等于 `ca.duration` 的值。

  • `server.renewBefore` 的值必须小于或等于 `server.duration` 的值。

如果默认值与这些条件冲突,您将收到错误。

如果您删除以下示例中的 `server.duration` 值,则默认值 `24h0m0s` 将大于 `ca.duration` 的值,这与指定的条件冲突。

示例
certConfig:
   ca:
     duration: 4h0m0s
     renewBefore: 1h0m0s
   server:
     duration: 4h0m0s
     renewBefore: 4h0m0s

这将导致以下错误消息

error: hyperconvergeds.hco.kubevirt.io "kubevirt-hyperconverged" could not be patched: admission webhook "validate-hco.kubevirt.io" denied the request: spec.certConfig: ca.duration is smaller than server.duration

错误消息仅提及第一个冲突。在继续之前,请检查所有 certConfig 值。