5.7. 配置自定义 TLS 证书


Red Hat Ansible Automation Platform 使用 X.509 证书和密钥对来保护流量。这些证书保护 Ansible Automation Platform 组件和公共 UI 和 API 连接的外部流量之间的内部流量。

管理 Ansible Automation Platform 部署的 TLS 证书主要有两种方法:

  1. Ansible Automation Platform 生成的证书(这是默认设置)
  2. 用户提供的证书

5.7.1. Ansible Automation Platform 生成的证书

默认情况下,安装程序会创建一个自签名证书颁发机构(CA),并使用它来为所有 Ansible Automation Platform 服务生成自签名 TLS 证书。自签名 CA 证书和密钥在 ~/aap/tls/ 目录下的一个节点上生成,并复制到所有其他节点上的相同位置。此 CA 在初始创建日期后的 10 年内有效。

自签名证书不是任何公共信任链的一部分。安装程序会创建一个证书信任存储,其中包含 ~/aap/tls/extracted/ 下的自签名 CA 证书,并将该目录绑定到 /etc/pki/ca-trust/extracted/ 下的每个 Ansible Automation Platform 服务容器。这允许每个 Ansible Automation Platform 组件验证其他 Ansible Automation Platform 服务的自签名证书。CA 证书也可以根据需要添加到其他系统或浏览器的信任存储中。

5.7.2. 用户提供的证书

要使用您自己的 TLS 证书和密钥替换在安装过程中生成的部分或所有自签名证书,您可以在清单文件中设置特定的变量。公共或机构 CA 必须提前生成这些证书和密钥,以便在安装过程中可用。

5.7.2.1. 使用自定义 CA 生成所有 TLS 证书

当您希望 Ansible Automation Platform 生成所有证书时,使用此方法,但您希望由自定义 CA 签名,而不是默认的自签名证书。

流程

  • 要使用自定义证书颁发机构(CA)为所有 Ansible Automation Platform 服务生成 TLS 证书,请在清单文件中设置以下变量:

    ca_tls_cert=<path_to_ca_tls_certificate>
    ca_tls_key=<path_to_ca_tls_key>
    Copy to Clipboard Toggle word wrap

5.7.2.2. 为每个服务提供自定义 TLS 证书

如果您的机构在 Ansible Automation Platform 之外管理 TLS 证书,且需要手动置备,则使用此方法。

流程

  • 要手动为每个单个服务提供 TLS 证书(如自动化控制器、自动化中心和 Event-Driven Ansible),请在清单文件中设置以下变量:

    # Platform gateway
    gateway_tls_cert=<path_to_tls_certificate>
    gateway_tls_key=<path_to_tls_key>
    gateway_pg_tls_cert=<path_to_tls_certificate>
    gateway_pg_tls_key=<path_to_tls_key>
    gateway_redis_tls_cert=<path_to_tls_certificate>
    gateway_redis_tls_key=<path_to_tls_key>
    
    # Automation controller
    controller_tls_cert=<path_to_tls_certificate>
    controller_tls_key=<path_to_tls_key>
    controller_pg_tls_cert=<path_to_tls_certificate>
    controller_pg_tls_key=<path_to_tls_key>
    
    # Automation hub
    hub_tls_cert=<path_to_tls_certificate>
    hub_tls_key=<path_to_tls_key>
    hub_pg_tls_cert=<path_to_tls_certificate>
    hub_pg_tls_key=<path_to_tls_key>
    
    # Event-Driven Ansible
    eda_tls_cert=<path_to_tls_certificate>
    eda_tls_key=<path_to_tls_key>
    eda_pg_tls_cert=<path_to_tls_certificate>
    eda_pg_tls_key=<path_to_tls_key>
    eda_redis_tls_cert=<path_to_tls_certificate>
    eda_redis_tls_key=<path_to_tls_key>
    
    # PostgreSQL
    postgresql_tls_cert=<path_to_tls_certificate>
    postgresql_tls_key=<path_to_tls_key>
    
    # Receptor
    receptor_tls_cert=<path_to_tls_certificate>
    receptor_tls_key=<path_to_tls_key>
    
    # Redis
    redis_tls_cert=<path_to_tls_certificate>
    redis_tls_key=<path_to_tls_key>
    Copy to Clipboard Toggle word wrap

5.7.2.3. 每个服务提供的证书的注意事项

在为每个服务提供自定义 TLS 证书时,请考虑以下几点:

  • 每个主机可以提供唯一的证书。这需要在您的清单文件中定义特定的 _tls_cert_tls_key 变量,如前面的清单文件示例所示。
  • 对于在多个节点间部署的服务(例如,遵循企业拓扑时),该服务提供的证书必须在 Subject Alternative Name (SAN)字段中包括所有关联节点的 FQDN。
  • 如果在执行 SSL/TLS 卸载的负载均衡器后面部署了面向外部的服务(如自动化控制器或平台网关),则服务的证书必须在 SAN 字段中包含负载均衡器的 FQDN,除了单个服务节点的 FQDN 外。

5.7.2.4. 提供自定义 CA 证书

手动提供 TLS 证书时,这些证书可能由自定义 CA 签名。提供自定义 CA 证书,以确保环境中正确验证和安全通信。如果您有多个自定义 CA 证书,则必须将它们合并到一个文件中。

流程

  • 如果您手动提供的 TLS 证书由自定义 CA 签名,则必须使用清单文件中的以下变量指定 CA 证书:

    custom_ca_cert=<path_to_custom_ca_certificate>
    Copy to Clipboard Toggle word wrap

    如果您有多个 CA 证书,请将它们组合到一个文件中,并使用 custom_ca_cert 变量引用组合证书。

5.7.3. receptor 证书注意事项

当将自定义证书用于 Receptor 节点时,证书需要在证书的 Subject Alternative Name (SAN)中指定的 otherName 字段,其值为 1.3.6.1.4.1.2312.19.1。如需更多信息,请参阅 获取网格 TLS

receptor 不支持使用通配符证书。另外,每个 Receptor 证书都必须在其 SAN 中指定主机 FQDN,才能正确执行 TLS 主机名验证。

5.7.4. Redis 证书注意事项

当为 Redis 相关的服务使用自定义 TLS 证书时,如果指定扩展密钥 Usage (EKU),请考虑以下用于 mutual TLS (mTLS)通信:

  • Redis 服务器证书(redis_tls_cert)应包含 serverAuth (Web 服务器身份验证)和 clientAuth (客户端身份验证) EKU。
  • Redis 客户端证书(gateway_redis_tls_cert,eda_redis_tls_cert)应包含 clientAuth (客户端身份验证) EKU。

5.7.5. 使用自定义 Receptor 签名密钥

receptor 签名会被默认启用,除非设置了 receptor_disable_signing=true,且安装程序生成 RSA 密钥对(public 和 private)。但是,您可以使用以下变量设置自定义 RSA 公钥和私钥:

receptor_signing_private_key=<full_path_to_private_key>
receptor_signing_public_key=<full_path_to_public_key>
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部