管理网格内证书

该特性正在积极研发中,目前尚处于 experimental 阶段。

许多用户需要管理其环境中使用的各类证书。 例如,一些用户需要使用椭圆曲线加密(ECC),而其他用户可能需要使用位数更多的 RSA 证书。 对于大多数用户来说,在环境中配置证书可能是一项令人望而却步的任务。

本文内容仅适用于网格内部通信。要管理网关上的证书, 请参阅安全网关文档。 要管理 istiod 所用的 CA 来生成工作负载证书, 请参阅插件 CA 证书文档。

istiod

当在没有根 CA 证书的情况下安装 Istio 时,istiod 将使用 RSA 2048 生成自签名的 CA 证书。

要更改自签名 CA 证书的位长度,您将需要修改提供给 istioctl 的 IstioOperator 清单或在 Helm 安装 istio-discovery Chart 期间使用的赋值文件。

尽管 pilot-discovery 有许多环境变量可以更改, 但本文仅概述其中一些。

  1. apiVersion: install.istio.io/v1alpha1
  2. kind: IstioOperator
  3. spec:
  4. values:
  5. pilot:
  6. env:
  7. CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
  1. pilot:
  2. env:
  3. CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096

Sidecar

由于 Sidecar 管理其本身用于网格内部通信的证书,因此 Sidecar 负责管理其私钥和生成的证书签发请求(CSR)。 需要修改 Sidecar 注入器以便为此注入环境变量。

尽管 pilot-agent 有许多环境变量可以更改, 但本文仅概述其中一些。

  1. apiVersion: install.istio.io/v1alpha1
  2. kind: IstioOperator
  3. spec:
  4. meshConfig:
  5. defaultConfig:
  6. proxyMetadata:
  7. CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
  1. meshConfig:
  2. defaultConfig:
  3. proxyMetadata:
  4. CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: curl
  5. spec:
  6. ...
  7. template:
  8. metadata:
  9. ...
  10. annotations:
  11. ...
  12. proxy.istio.io/config: |
  13. CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
  14. spec:
  15. ...

签名算法

默认情况下,Sidecar 将创建 RSA 证书。 如果您想将其更改为 ECC,您需要将 ECC_SIGNATURE_ALGORITHM 设置为 ECDSA

  1. apiVersion: install.istio.io/v1alpha1
  2. kind: IstioOperator
  3. spec:
  4. meshConfig:
  5. defaultConfig:
  6. proxyMetadata:
  7. ECC_SIGNATURE_ALGORITHM: "ECDSA"
  1. meshConfig:
  2. defaultConfig:
  3. proxyMetadata:
  4. ECC_SIGNATURE_ALGORITHM: "ECDSA"

只有 P256 和 P384 可通过 ECC_CURVE 支持。

如果您希望保留 RSA 签名算法并想要修改 RSA 密钥大小, 您可以更改 WORKLOAD_RSA_KEY_SIZE 的值。