管理网格内证书
许多用户需要管理其环境中使用的各类证书。 例如,一些用户需要使用椭圆曲线加密(ECC),而其他用户可能需要使用位数更多的 RSA 证书。 对于大多数用户来说,在环境中配置证书可能是一项令人望而却步的任务。
本文内容仅适用于网格内部通信。要管理网关上的证书, 请参阅安全网关文档。 要管理 istiod 所用的 CA 来生成工作负载证书, 请参阅插件 CA 证书文档。
istiod
当在没有根 CA 证书的情况下安装 Istio 时,istiod 将使用 RSA 2048 生成自签名的 CA 证书。
要更改自签名 CA 证书的位长度,您将需要修改提供给 istioctl
的 IstioOperator
清单或在 Helm 安装 istio-discovery Chart 期间使用的赋值文件。
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
values:
pilot:
env:
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
pilot:
env:
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
Sidecar
由于 Sidecar 管理其本身用于网格内部通信的证书,因此 Sidecar 负责管理其私钥和生成的证书签发请求(CSR)。 需要修改 Sidecar 注入器以便为此注入环境变量。
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
proxyMetadata:
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
meshConfig:
defaultConfig:
proxyMetadata:
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
apiVersion: apps/v1
kind: Deployment
metadata:
name: curl
spec:
...
template:
metadata:
...
annotations:
...
proxy.istio.io/config: |
CITADEL_SELF_SIGNED_CA_RSA_KEY_SIZE: 4096
spec:
...
签名算法
默认情况下,Sidecar 将创建 RSA 证书。
如果您想将其更改为 ECC,您需要将 ECC_SIGNATURE_ALGORITHM
设置为 ECDSA
。
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
proxyMetadata:
ECC_SIGNATURE_ALGORITHM: "ECDSA"
meshConfig:
defaultConfig:
proxyMetadata:
ECC_SIGNATURE_ALGORITHM: "ECDSA"
只有 P256 和 P384 可通过 ECC_CURVE
支持。
如果您希望保留 RSA 签名算法并想要修改 RSA 密钥大小,
您可以更改 WORKLOAD_RSA_KEY_SIZE
的值。