5.7. 配置自定义 TLS 证书
Red Hat Ansible Automation Platform 使用 X.509 证书和密钥对来保护流量。这些证书保护 Ansible Automation Platform 组件和公共 UI 和 API 连接的外部流量之间的内部流量。
管理 Ansible Automation Platform 部署的 TLS 证书主要有两种方法:
- Ansible Automation Platform 生成的证书(这是默认设置)
- 用户提供的证书
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>
ca_tls_cert=<path_to_ca_tls_certificate> ca_tls_key=<path_to_ca_tls_key>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.2.2. 为每个服务提供自定义 TLS 证书 复制链接链接已复制到粘贴板!
如果您的机构在 Ansible Automation Platform 之外管理 TLS 证书,且需要手动置备,则使用此方法。
流程
要手动为每个单个服务提供 TLS 证书(如自动化控制器、自动化中心和 Event-Driven Ansible),请在清单文件中设置以下变量:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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>
custom_ca_cert=<path_to_custom_ca_certificate>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您有多个 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>
receptor_signing_private_key=<full_path_to_private_key>
receptor_signing_public_key=<full_path_to_public_key>