文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

为 MinIO 启用 TLS

MinIO 支持传输层安全性 (TLS) 1.2+ 版本的入站和出站流量加密。

MinIO Operator 支持以下方式为 MinIO Tenant 启用 TLS:

  • 使用 Kubernetes 集群签名证书自动配置 TLS

  • 用户指定的TLS使用Kubernetes密钥

  • Certmanager管理的TLS证书

MinIO 会自动检测配置目录或默认目录中的 TLS 证书,并启用 TLS 启动服务。

此过程记录了在 MinIO 中为单个域名启用 TLS 的方法。 有关多域名 TLS 的说明,请参阅 TODO

前提条件

访问 MinIO 集群

您必须拥有对 Kubernetes 集群的访问权限,并具备相应的管理权限。kubectlconfiguration.

此过程假设您的权限集已充分扩展,以支持在 Kubernetes 集群上部署或修改与 MinIO 相关的资源,包括但不限于 pods、statefulsets、replicasets、deployments 和 secrets。

此过程使用mc用于在 MinIO 集群上执行操作。 安装mc在可以访问集群网络的机器上。 请参阅mc 安装快速入门有关下载和安装的说明mc.

此过程假设已配置alias对于 MinIO 集群。

此过程还假设对每个 MinIO 主机服务器具有 SSH 或类似 shell 级别的访问权限,并拥有管理权限。

TLS Certificates

使用一个必要的TLS证书进行配置支持的密码套件供 MinIO 使用。

MinIO TLS on Kubernetes有关支持的租户 TLS 配置的更完整指南。

使用您偏好的方式配置证书,例如通过您组织的内部证书颁发机构,或使用知名的全球提供商(如 Digicert 或 Verisign)。

您可以使用自签名证书创建openssl对于 MinIOcertgen工具。

例如,以下命令生成一个自签名证书,其中包含一组与MinIO服务器主机关联的IP和DNS主题备用名称(SAN):

certgen -host "localhost,minio-*.example.net"

MinIO Baremetal TLS有关证书生成和放置的更完整指导。

过程

MinIO Operator 支持三种在 MinIO 租户上管理 TLS 证书的方法:

  • MinIO 自动 TLS 证书生成

  • cert-manager托管TLS证书

  • 用户管理的TLS证书

您可以使用上述方法的任意组合来启用和配置TLS。 MinIO强烈建议使用cert-manager用于用户指定的证书,以简化管理和续订流程。

您也可以部署未启用 TLS 的 MinIO 租户。

以下步骤适用于使用 MinIO 的新部署和现有部署Kustomize:

  1. Review theTenant CRD TenantSpec.requestAutoCertTenantSpec.certConfig字段。

    对于现有的 MinIO 租户,请检查用于创建该租户的 Kustomize 资源,并内省这些字段及其当前配置(如果有)。

  2. 创建或修改您的租户 YAML 以设置以下值:requestAutoCertcertConfig必要时。 例如:

    spec:
       requestAutoCert: true
       certConfig:
         commonName: "CN=MinioTenantCommonName"
         organizationName: "O=MyOrganizationName"
         dnsNames:
           - '*.minio-tenant.domain.tld'
    

    查看Kustomize 租户基础 YAML作为创建或修改租户资源指导的基线模板。

  3. 应用新的 Kustomization 模板

    一旦应用更改,MinIO Operator 会自动重新部署具有更新配置的租户。

以下步骤适用于使用 MinIO 的新部署和现有部署Kustomize:

  1. Review theTenant CRD TenantSpec.externalCertsCecret字段

    对于现有的 MinIO 租户,请检查用于创建该租户的 Kustomize 资源,并查看该字段的当前配置(如果有)。

  2. 创建或修改您的租户 YAML 以引用适当的cert-managerresource.

    例如,以下 Tenant YAML 片段引用了一个 cert-manager 资源myminio-tls:

    apiVersion: minio.min.io/v2
    kind: Tenant
    metadata:
    name: myminio
    namespace: minio-tenant
    spec:
       ## Disable default tls certificates.
       requestAutoCert: false
       ## Use certificates generated by cert-manager.
       externalCertSecret:
          - name: myminio-tls
             type: cert-manager.io/v1
    
  3. 应用新的 Kustomization 模板

    一旦应用更改,MinIO Operator 会自动重新部署具有更新配置的租户。

以下步骤适用于使用 MinIO 的新部署和现有部署Kustomize:

  1. Review theTenant CRD TenantSpec.externalCertSecret字段。

    对于现有的 MinIO 租户,请检查用于创建该租户的 Kustomize 资源,并查看该字段的当前配置(如果有)。

  2. 创建或修改您的租户 YAML 以引用类型为 secret 的密钥kubernetes.io/tls:

    例如,以下租户 YAML 片段引用了一个 TLS 密钥,该密钥覆盖了 MinIO 租户接受连接的域名。

    apiVersion: minio.min.io/v2
    kind: Tenant
    metadata:
    name: myminio
    namespace: minio-tenant
    spec:
       ## Disable default tls certificates.
       requestAutoCert: false
       ## Use certificates generated by cert-manager.
       externalCertSecret:
       - name: domain-certificate
         type: kubernetes.io/tls
    
  3. 应用新的 Kustomization 模板

    一旦应用更改,MinIO Operator 会自动重新部署具有更新配置的租户。

MinIO Server 会为每个节点搜索 TLS 密钥和证书,并使用这些凭据启用 TLS。 MinIO 在发现并验证证书后会自动启用 TLS。 搜索位置取决于您的 MinIO 配置:

默认情况下,MinIO 服务器会在以下目录中查找每个节点的 TLS 密钥和证书:

${HOME}/.minio/certs

哪里${HOME}是运行 MinIO Server 进程的用户的主目录。 您可能需要创建${HOME}/.minio/certs如果目录不存在。

对于systemd托管部署中这必须对应于USER运行 MinIO 进程。 如果该用户没有主目录,请使用自定义路径作为替代选项。

您可以为 MinIO 服务器指定一个路径来搜索证书,使用minio server --certs-dir or -Sparameter.

例如,以下命令片段指示 MinIO 进程使用/opt/minio/certsTLS证书目录。

minio server --certs-dir /opt/minio/certs ...

运行 MinIO 服务的用户必须对此目录拥有读写权限。

放置默认域名的TLS证书(例如minio.example.net) 在/certs目录,其中私钥作为private.key和公共证书public.crt.

例如:

/path/to/certs
private.key
public.crt

您可以使用 MinIOcertgen为评估启用 TLS 的 MinIO 创建自签名证书。 例如,以下命令生成一个自签名证书,其中包含与 MinIO 服务器主机关联的一组 IP 和 DNS 主题备用名称 (SANs):

certgen -host "localhost,minio-*.example.net"

放置生成的public.crtprivate.key进入/path/to/certsdirectory 来为 MinIO 部署启用 TLS。 应用程序可以使用public.crt作为受信任的证书颁发机构,允许连接到 MinIO 部署而无需禁用证书验证。

如果您正在重新配置之前未启用TLS的现有部署,请更新MINIO_VOLUMES指定https而不是http您可能还需要更新应用程序或客户端使用的URL。