You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes集群中使用cert-manager为MinIO创建自签名TLS证书

TLS核心概念
  • 证书颁发机构(CA):签发数字证书的信任锚点,本次使用集群内自行生成的私有CA,无需对接公信第三方机构,仅需在需要信任该证书的环境导入CA证书即可完成校验。
  • 自签名证书:由私有CA直接签发的证书,适配私有集群、内部测试等非公开访问场景,满足本次MinIO加密传输需求。
  • cert-manager核心资源:
    • Issuer/ClusterIssuer:定义证书签发主体,本次配置为自签名类型,自动生成集群内私有CA
    • Certificate:定义待生成证书的域名、有效期、存储位置等属性,cert-manager会自动根据该资源生成对应TLS证书并存储为K8s Secret
全流程配置(全Helm托管,无本地执行命令)

所有资源均直接写入MinIO对应Helm Chart的templates目录下,随Helm发布统一部署即可。

步骤1:配置自签名证书签发者

在Helm templates目录新增issuer.yaml文件,内容如下:

apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: minio-selfsigned-issuer
  namespace: <MinIO部署的命名空间>
spec:
  selfSigned: {}

如果需要跨命名空间使用该签发者,可将Kind改为ClusterIssuer,删除namespace字段即可。

步骤2:配置MinIO TLS证书资源

在Helm templates目录新增certificate.yaml文件,内容如下:

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: minio-tls
  namespace: <MinIO部署的命名空间>
spec:
  # 证书存储的Secret名称,需和MinIO values中的certSecret字段一致
  secretName: tls-minio
  # 证书有效期,可按需调整
  duration: 8760h # 1年
  renewBefore: 720h # 到期前30天自动续签
  issuerRef:
    # 对应上一步创建的签发者名称
    name: minio-selfsigned-issuer
    kind: Issuer
  # 证书生效的域名/IP,根据访问场景补充
  dnsNames:
    # MinIO集群内服务域名,根据实际服务名、命名空间调整
    - minio
    - minio.<命名空间>.svc
    - minio.<命名空间>.svc.cluster.local
    # port-forward本地访问用域名/IP
    - localhost
  ipAddresses:
    - 127.0.0.1
    # 如有其他固定访问IP可补充在此
  # 证书私钥算法,符合MinIO要求
  privateKey:
    algorithm: RSA
    encoding: PKCS1
    size: 2048

cert-manager会自动生成对应Secret,默认包含3个键值:tls.crt(公钥)、tls.key(私钥)、ca.crt(CA公钥)。

步骤3:调整MinIO Helm values配置

参考提供的values片段,调整如下即可:

## TLS Settings for MinIO
tls:
  enabled: true
  # 对应Certificate中定义的secretName
  certSecret: "tls-minio"
  # 对应cert-manager生成的Secret中公钥、私钥的键名
  publicCrt: tls.crt
  privateKey: tls.key
  # 自签名场景无需额外配置信任证书池,留空即可
  trustedCertsSecret: ""

配置后MinIO Helm Chart会自动将证书挂载到/etc/minio/certs/路径下,完全符合MinIO的路径要求。

步骤4:配置校验

Helm发布完成后:

  1. 查看tls-minioSecret已正常生成,包含tls.crt和tls.key内容
  2. 进入MinIO Pod,查看/etc/minio/certs目录下已存在公钥、私钥文件
  3. 开启port-forward后,通过https://localhost:9000访问MinIO控制台,可查看到对应的自签名证书信息
注意事项
  • 本地浏览器访问时提示证书不安全属于正常现象,如需消除提示,可将Secret中的ca.crt内容导出导入本地系统信任存储即可
  • 集群内其他服务需要访问MinIO TLS端口时,将该CA证书导入对应服务的信任池即可完成证书校验

内容的提问来源于stack exchange,提问作者n1vgabay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:06:04