6.2. 更改 SSL 证书
要更改 SSL 证书,您可以编辑清单文件并运行安装程序。安装程序验证所有 Ansible Automation Platform 组件是否正常工作。安装程序可能需要很长时间才能运行。
或者,您可以手动更改 SSL 证书。这速度更快,但没有自动验证。
红帽建议您使用安装程序更改 Ansible Automation Platform 实例。
6.2.1. 先决条件 复制链接链接已复制到粘贴板!
- 如果存在中间证书颁发机构,您必须将它附加到服务器证书中。
- 自动化控制器和自动化中心都使用 NGINX,因此服务器证书必须采用 PEM 格式。
- 为证书使用正确的顺序:服务器证书首先,后跟中间证书颁发机构。
如需更多信息,请参阅 NGINX 文档中的 ssl 证书部分。
6.2.2. 使用安装程序更改 SSL 证书和密钥 复制链接链接已复制到粘贴板!
以下流程描述了如何更改清单文件中的 SSL 证书和密钥。
流程
- 将新的 SSL 证书和密钥复制到相对于 Ansible Automation Platform 安装程序的路径。
将 SSL 证书和密钥的绝对路径添加到清单文件。有关设置这些变量的指导,请参阅 Red Hat Ansible Automation Platform 安装指南中的 Automation controller 变量和 Automation hub 变量部分。
-
自动化控制器:
web_server_ssl_cert
,web_server_ssl_key
,custom_ca_cert
-
自动化中心:
automationhub_ssl_cert
,automationhub_ssl_key
,custom_ca_cert
注意custom_ca_cert
必须是签署中间证书颁发机构的根证书颁发机构。此文件安装在/etc/pki/ca-trust/source/anchors
中。-
自动化控制器:
- 运行安装程序。
6.2.3. 手动更改 SSL 证书 复制链接链接已复制到粘贴板!
6.2.3.1. 在自动化控制器中手动更改 SSL 证书和密钥 复制链接链接已复制到粘贴板!
以下流程描述了如何在 Automation Controller 上手动更改 SSL 证书和密钥。
流程
备份当前的 SSL 证书:
cp /etc/tower/tower.cert /etc/tower/tower.cert-$(date +%F)
cp /etc/tower/tower.cert /etc/tower/tower.cert-$(date +%F)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 备份当前密钥文件:
cp /etc/tower/tower.key /etc/tower/tower.key-$(date +%F)+
cp /etc/tower/tower.key /etc/tower/tower.key-$(date +%F)+
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将新 SSL 证书复制到
/etc/tower/tower.cert
。 -
将新密钥复制到
/etc/tower/tower.key
。 恢复 SELinux 上下文:
restorecon -v /etc/tower/tower.cert /etc/tower/tower.key
restorecon -v /etc/tower/tower.cert /etc/tower/tower.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为证书和密钥文件设置适当的权限:
chown root:awx /etc/tower/tower.cert /etc/tower/tower.key chmod 0600 /etc/tower/tower.cert /etc/tower/tower.key
chown root:awx /etc/tower/tower.cert /etc/tower/tower.key chmod 0600 /etc/tower/tower.cert /etc/tower/tower.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 测试 NGINX 配置:
nginx -t
nginx -t
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新载入 NGINX:
systemctl reload nginx.service
systemctl reload nginx.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否安装了新的 SSL 证书和密钥:
true | openssl s_client -showcerts -connect ${CONTROLLER_FQDN}:443
true | openssl s_client -showcerts -connect ${CONTROLLER_FQDN}:443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下流程描述了如何为 OpenShift Container Platform 上运行的自动化控制器更改 SSL 证书和密钥。
流程
- 将签名的 SSL 证书和密钥复制到安全位置。
在 OpenShift 中创建 TLS secret:
oc create secret tls ${CONTROLLER_INSTANCE}-certs-$(date +%F) --cert=/path/to/ssl.crt --key=/path/to/ssl.key
oc create secret tls ${CONTROLLER_INSTANCE}-certs-$(date +%F) --cert=/path/to/ssl.crt --key=/path/to/ssl.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改自动化控制器自定义资源,将
route_tls_secret
和新 secret 的名称添加到 spec 部分。oc edit automationcontroller/${CONTROLLER_INSTANCE}
oc edit automationcontroller/${CONTROLLER_INSTANCE}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... spec: route_tls_secret: automation-controller-certs-2023-04-06 ...
... spec: route_tls_secret: automation-controller-certs-2023-04-06 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
TLS secret 的名称是任意的。在本例中,它的时间戳为创建 secret 的日期,以便将其与应用到自动化控制器实例的其他 TLS secret 进行区分。
- 等待几分钟,以便应用更改。
验证是否安装了新的 SSL 证书和密钥:
true | openssl s_client -showcerts -connect ${CONTROLLER_FQDN}:443
true | openssl s_client -showcerts -connect ${CONTROLLER_FQDN}:443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.3.3. 在自动化中心中手动更改 SSL 证书和密钥 复制链接链接已复制到粘贴板!
以下流程描述了如何在自动化中心中手动更改 SSL 证书和密钥。
流程
备份当前的 SSL 证书:
cp /etc/pulp/certs/pulp_webserver.crt /etc/pulp/certs/pulp_webserver.crt-$(date +%F)
cp /etc/pulp/certs/pulp_webserver.crt /etc/pulp/certs/pulp_webserver.crt-$(date +%F)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 备份当前密钥文件:
cp /etc/pulp/certs/pulp_webserver.key /etc/pulp/certs/pulp_webserver.key-$(date +%F)
cp /etc/pulp/certs/pulp_webserver.key /etc/pulp/certs/pulp_webserver.key-$(date +%F)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将新 SSL 证书复制到
/etc/pulp/certs/pulp_webserver.crt
。 -
将新密钥复制到
/etc/pulp/certs/pulp_webserver.key
。 恢复 SELinux 上下文:
restorecon -v /etc/pulp/certs/pulp_webserver.crt /etc/pulp/certs/pulp_webserver.key
restorecon -v /etc/pulp/certs/pulp_webserver.crt /etc/pulp/certs/pulp_webserver.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为证书和密钥文件设置适当的权限:
chown root:pulp /etc/pulp/certs/pulp_webserver.crt /etc/pulp/certs/pulp_webserver.key
chown root:pulp /etc/pulp/certs/pulp_webserver.crt /etc/pulp/certs/pulp_webserver.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 0600 /etc/pulp/certs/pulp_webserver.crt /etc/pulp/certs/pulp_webserver.key
chmod 0600 /etc/pulp/certs/pulp_webserver.crt /etc/pulp/certs/pulp_webserver.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 测试 NGINX 配置:
nginx -t
nginx -t
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新载入 NGINX:
systemctl reload nginx.service
systemctl reload nginx.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否安装了新的 SSL 证书和密钥:
true | openssl s_client -showcerts -connect ${CONTROLLER_FQDN}:443
true | openssl s_client -showcerts -connect ${CONTROLLER_FQDN}:443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow