第 8 章 使用 RHEL 系统角色请求证书
通过证书系统角色,您可以使用 Red Hat Ansible Engine 发布和管理证书。
本章涵盖了以下主题:
8.1. 证书系统角色
通过使用证书系统角色,您可以使用 Red Hat Ansible Engine 管理并更新 TLS 和 SSL 证书。
该角色使用 certmonger
作为证书提供商,目前支持发布和更新自签名证书,并使用 IdM 集成证书颁发机构(CA)。
您可以将 Ansible playbook 中的以下变量与证书系统角色结合使用:
- certificate_wait 指定任务是否应该等待签发证书。
- 代表要发布的每个证书及其参数的 certificate_requests。
其它资源
-
有关
certificate_requests
变量使用的参数的详情,以及certificate
系统角色的附加信息,请参阅该/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
文件。 - 有关 RHEL 系统角色以及如何应用它们的详情,请参阅 RHEL 系统角色入门。
8.2. 使用证书系统角色请求新的自签名证书
使用证书系统角色,您可以使用 Red Hat Ansible Engine 发布自签名证书。
此过程使用 certmonger
供应商并通过 getcert
命令请求证书。
默认情况下,在证书过期前 certmonger
自动尝试更新该证书。您可以通过将 Ansible playbook 中的 auto_renew
参数设置为no
来禁用此功能。
先决条件
您已在要运行 playbook 的系统中安装了 Red Hat Ansible Engine。
注意您不必在要部署
certificate
解决方案的系统中安装 Ansible。已安装该系统中要运行 playbook 的
rhel-system-roles
软件包。有关 RHEL 系统角色以及如何应用它们的详情,请参阅 RHEL 系统角色入门。
流程
可选: 创建一个清单文件,例如
inventory.file
:$ touch inventory.file
打开清单文件并定义要请求证书的主机,例如:
[webserver] server.idm.example.com
创建 playbook 文件,例如
request-certificate.yml
:-
设置
hosts
为包含您要请求证书的主机,如webserver
。 将
certificate_requests
变量设置为包含以下内容:-
将参数设置
name
为证书的所需名称,如mycert
。 -
将
dns
参数设置为证书中包含的域,如*.example.com
。 -
将参数
ca
设置为self-sign
。
-
将参数设置
在
roles
下设置rhel-system-roles.certificate
角色。这是本例的 playbook 文件:
--- - hosts: webserver vars: certificate_requests: - name: mycert dns: *.example.com ca: self-sign roles: - rhel-system-roles.certificate
-
设置
- 保存该文件。
运行 playbook:
$ ansible-playbook -i inventory.file request-certificate.yml
其它资源
-
有关
certificate_requests
变量使用的参数的详情,以及certificate
系统角色的附加信息,请参阅该/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
文件。 -
有关
ansible-playbook
命令的详情请参考ansible-playbook(1)
man page。
8.3. 使用证书系统角色从 IdM CA 请求一个新证书
使用证书系统角色时,您可以使用 Red Hat Ansible Engine 在使用带有集成证书颁发机构(CA)的 IdM 服务器时,使用 Red Hat Ansible Engine 发布证书。因此,在使用 IdM 作为 CA 时,您可以迅速、持续地管理多个系统的证书信任链。
此过程使用 certmonger
供应商并通过 getcert
命令请求证书。
默认情况下,在证书过期前 certmonger
自动尝试更新该证书。您可以通过将 Ansible playbook 中的 auto_renew
参数设置为no
来禁用此功能。
先决条件
您已在要运行 playbook 的系统中安装了 Red Hat Ansible Engine。
注意您不必在要部署
certificate
解决方案的系统中安装 Ansible。已安装该系统中要运行 playbook 的
rhel-system-roles
软件包。有关 RHEL 系统角色以及如何应用它们的详情,请参阅 RHEL 系统角色入门。
流程
可选: 创建一个清单文件,例如
inventory.file
:$ touch inventory.file
打开清单文件并定义要请求证书的主机,例如:
[webserver] server.idm.example.com
创建 playbook 文件,例如
request-certificate.yml
:-
设置
hosts
为包含您要请求证书的主机,如webserver
。 将
certificate_requests
变量设置为包含以下内容:-
将参数设置
name
为证书的所需名称,如mycert
。 -
将
dns
参数设置为证书中包含的域,如www.example.com
。 -
将
principal
参数设置为特定的 Kerberos 主体,如HTTP/www.example.com@EXAMPLE.COM
。 -
将参数
ca
设置为ipa
。
-
将参数设置
在
roles
下设置rhel-system-roles.certificate
角色。这是本例的 playbook 文件:
--- - hosts: webserver vars: certificate_requests: - name: mycert dns: www.example.com principal: HTTP/www.example.com@EXAMPLE.COM ca: ipa roles: - rhel-system-roles.certificate
-
设置
- 保存该文件。
运行 playbook:
$ ansible-playbook -i inventory.file request-certificate.yml
其它资源
-
有关
certificate_requests
变量使用的参数的详情,以及certificate
系统角色的附加信息,请参阅该/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
文件。 -
有关
ansible-playbook
命令的详情请参考ansible-playbook(1)
man page。
8.4. 指定在使用证书系统角色前或之后要运行的命令
使用证书系统角色,您可以使用 Red Hat Ansible Engine 在签发或更新证书之前和之后执行命令。
在以下示例中,管理员确保在为 www.example.com
发布或更新自签名证书前停止 httpd
服务,然后再重启该服务。
默认情况下,在证书过期前 certmonger
自动尝试更新该证书。您可以通过将 Ansible playbook 中的 auto_renew
参数设置为no
来禁用此功能。
先决条件
您已在要运行 playbook 的系统中安装了 Red Hat Ansible Engine。
注意您不必在要部署
certificate
解决方案的系统中安装 Ansible。已安装该系统中要运行 playbook 的
rhel-system-roles
软件包。有关 RHEL 系统角色以及如何应用它们的详情,请参阅 RHEL 系统角色入门。
流程
可选: 创建一个清单文件,例如
inventory.file
:$ touch inventory.file
打开清单文件并定义要请求证书的主机,例如:
[webserver] server.idm.example.com
创建 playbook 文件,例如
request-certificate.yml
:-
设置
hosts
为包含您要请求证书的主机,如webserver
。 将
certificate_requests
变量设置为包含以下内容:-
将参数设置
name
为证书的所需名称,如mycert
。 -
将
dns
参数设置为证书中包含的域,如www.example.com
。 -
将
ca
参数设置为您要用来发布证书的 CA,如self-sign
。 -
将
run_before
参数设置为在签发或续订证书前要执行的命令,如systemctl stop httpd.service
。 -
将
run_after
参数设置为发布或续订这个证书后要执行的命令,如systemctl start httpd.service
。
-
将参数设置
在
roles
下设置rhel-system-roles.certificate
角色。这是本例的 playbook 文件:
--- - hosts: webserver vars: certificate_requests: - name: mycert dns: www.example.com ca: self-sign run_before: systemctl stop httpd.service run_after: systemctl start httpd.service roles: - linux-system-roles.certificate
-
设置
- 保存该文件。
运行 playbook:
$ ansible-playbook -i inventory.file request-certificate.yml
其它资源
-
有关
certificate_requests
变量使用的参数的详情,以及certificate
系统角色的附加信息,请参阅该/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
文件。 -
有关
ansible-playbook
命令的详情请参考ansible-playbook(1)
man page。
为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。