community.crypto.ecs_certificate 模块 – 使用 Entrust Certificate Services (ECS) API 请求 SSL/TLS 证书
注意
此模块是 community.crypto 集合 (版本 2.22.3) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.crypto
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在剧本中使用它,请指定: community.crypto.ecs_certificate
。
概要
使用 Entrust Certificate Services (ECS) API 创建、重新颁发和续订证书。
需要 Entrust Certificate Services (ECS) API 的凭据。
为了请求证书,证书签名请求中使用的域名和组织必须已经在 ECS 系统中验证。此模块 _不_ 负责执行这些步骤。
要求
执行此模块的主机需要以下要求。
PyYAML >= 3.11
cryptography >= 1.6
参数
参数 |
注释 |
---|---|
接收证书交付通知和过期通知的其他电子邮件地址列表。 |
|
证书应设置为过期的日期,采用符合 RFC3339 的日期或日期时间格式。例如,
重新颁发的证书将始终与原始证书具有相同的过期日期。 请注意,仅支持使用日期(日、月、年)来指定过期日期。如果您选择使用过期日期指定过期时间,则该时间将调整为东部标准时间 (EST)。这可能会意外地将您的过期日期更改为前一天。 仅适用于具有池化库存模型的帐户。 只能指定 |
|
证书的有效期。 适用于具有非池化库存模型的帐户的所有证书。
适用于使用池化库存模型的帐户的证书类型为
只能指定 选项
|
|
指定请求的证书类型。 如果证书正在重新颁发或续期,则忽略此参数,并使用初始证书的 选项
|
|
提交证书签名请求的客户端 ID。 如果未指定客户端 ID,则证书将以 ID 为 1 的主客户端的名义提交。 使用除主客户端以外的客户端时,不能指定 颁发的证书的主体可分辨名称中将包含由客户端表示的组织值。 默认值: |
|
Base-64 编码的证书签名请求 (CSR)。 当 如果指定了 如果指定了 如果指定了 不会使用 CSR 中的组织“O=”字段。它将在颁发的证书中被 |
|
要与证书请求和证书关联的自定义字段的映射。 仅当为您的帐户启用了自定义字段时才受支持。 指定的每个自定义字段都必须是您为帐户定义的自定义字段。 |
|
自定义日期字段。 |
|
自定义日期字段。 |
|
自定义日期字段。 |
|
自定义日期字段。 |
|
自定义日期字段。 |
|
自定义下拉字段。 |
|
自定义下拉字段。 |
|
自定义下拉字段。 |
|
自定义下拉字段。 |
|
自定义下拉字段。 |
|
自定义电子邮件字段。 |
|
自定义电子邮件字段。 |
|
自定义电子邮件字段。 |
|
自定义电子邮件字段。 |
|
自定义电子邮件字段。 |
|
自定义数字字段。 |
|
自定义数字字段。 |
|
自定义数字字段。 |
|
自定义数字字段。 |
|
自定义数字字段。 |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
自定义文本字段(最多 500 个字符) |
|
代码签名证书的最终用户必须在密码安全硬件上生成和存储此请求的私钥,才能符合 Entrust CSP 和订阅协议。如果请求类型为 仅适用于值为 选项
|
|
用于向 Entrust 证书服务 (ECS) API 进行身份验证的客户端证书密钥的路径。 |
|
用于向 Entrust 证书服务 (ECS) API 进行身份验证的客户端证书的路径。 |
|
用于向 Entrust 证书服务 (ECS) API 进行身份验证的密钥(密码)。 |
|
定义 Entrust 证书服务 (ECS) API 配置的规范文件的路径。 您可以使用此方法保留规范的本地副本,以避免每次使用模块时都下载它。 默认值: |
|
用于向 Entrust 证书服务 (ECS) API 进行身份验证的用户名。 |
|
如果使用 force,则无论 如果 选项
|
|
证书、中间证书和根证书的完整证书链的目标路径。 |
|
作为PEM编码证书的生成证书的目标路径。 如果此位置的证书不是Entrust颁发的证书,即使当前证书在技术上有效,也始终会请求新证书。 如果此位置已经有Entrust证书,是否替换它取决于 如果正在替换现有证书(请参阅 |
|
证书必须剩余有效的几天数。如果 如果 例如,如果您请求生命周期为90天的证书,请不要将
默认值: |
|
如果 指定 指定 指定 指定 如果证书是在过去 30 天内签发的,则 请注意, 仅当 例如,设置 选项
|
|
与证书跟踪信息关联的请求者邮箱,用于接收证书的交付和过期通知。 |
|
与证书跟踪信息关联的请求者姓名。 |
|
与证书跟踪信息关联的请求者电话号码。 |
|
主题备选名称标识符,作为值的数组(适用于值为 如果您正在请求新的 SSL 证书,并且传递了 请参阅 对于 |
|
要重新签发或续订的证书的跟踪 ID。 如果 如果 如果 如果 当已知证书当前不存在于服务器上,但您希望通过 Ansible 剧本续订或重新签发它时,可以使用此方法。例如,如果您指定了 |
|
附加到证书记录的自由格式跟踪信息。 |
属性
属性 |
支持 |
描述 |
---|---|---|
支持:部分 仅当 |
可以在 |
|
支持:不支持 |
在差异模式下,将返回有关已更改内容(或可能需要在 |
|
支持:完全 |
使用 Ansible 的严格文件操作函数来确保正确的权限并避免数据损坏。 |
备注
注意
必须将
path
指定为证书的输出位置。
另请参阅
另请参阅
- community.crypto.openssl_privatekey
可用于创建私钥(证书和帐户)。
- community.crypto.openssl_csr
可用于创建证书签名请求 (CSR)。
- community.crypto.to_serial 过滤器插件
将整数转换为用冒号分隔的十六进制数字列表。
示例
- name: Request a new certificate from Entrust with bare minimum parameters.
Will request a new certificate if current one is valid but within 30
days of expiry. If replacing an existing file in path, will back it up.
community.crypto.ecs_certificate:
backup: true
path: /etc/ssl/crt/ansible.com.crt
full_chain_path: /etc/ssl/crt/ansible.com.chain.crt
csr: /etc/ssl/csr/ansible.com.csr
cert_type: EV_SSL
requester_name: Jo Doe
requester_email: [email protected]
requester_phone: 555-555-5555
entrust_api_user: apiusername
entrust_api_key: a^lv*32!cd9LnT
entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key
- name: If there is no certificate present in path, request a new certificate
of type EV_SSL. Otherwise, if there is an Entrust managed certificate
in path and it is within 63 days of expiration, request a renew of that
certificate.
community.crypto.ecs_certificate:
path: /etc/ssl/crt/ansible.com.crt
csr: /etc/ssl/csr/ansible.com.csr
cert_type: EV_SSL
cert_expiry: '2020-08-20'
request_type: renew
remaining_days: 63
requester_name: Jo Doe
requester_email: [email protected]
requester_phone: 555-555-5555
entrust_api_user: apiusername
entrust_api_key: a^lv*32!cd9LnT
entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key
- name: If there is no certificate present in path, download certificate
specified by tracking_id if it is still valid. Otherwise, if the
certificate is within 79 days of expiration, request a renew of that
certificate and save it in path. This can be used to "migrate" a
certificate to be Ansible managed.
community.crypto.ecs_certificate:
path: /etc/ssl/crt/ansible.com.crt
csr: /etc/ssl/csr/ansible.com.csr
tracking_id: 2378915
request_type: renew
remaining_days: 79
entrust_api_user: apiusername
entrust_api_key: a^lv*32!cd9LnT
entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key
- name: Force a reissue of the certificate specified by tracking_id.
community.crypto.ecs_certificate:
path: /etc/ssl/crt/ansible.com.crt
force: true
tracking_id: 2378915
request_type: reissue
entrust_api_user: apiusername
entrust_api_key: a^lv*32!cd9LnT
entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key
- name: Request a new certificate with an alternative client. Note that the
issued certificate will have it's Subject Distinguished Name use the
organization details associated with that client, rather than what is
in the CSR.
community.crypto.ecs_certificate:
path: /etc/ssl/crt/ansible.com.crt
csr: /etc/ssl/csr/ansible.com.csr
client_id: 2
requester_name: Jo Doe
requester_email: [email protected]
requester_phone: 555-555-5555
entrust_api_user: apiusername
entrust_api_key: a^lv*32!cd9LnT
entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key
- name: Request a new certificate with a number of CSR parameters overridden
and tracking information
community.crypto.ecs_certificate:
path: /etc/ssl/crt/ansible.com.crt
full_chain_path: /etc/ssl/crt/ansible.com.chain.crt
csr: /etc/ssl/csr/ansible.com.csr
subject_alt_name:
- ansible.testcertificates.com
- www.testcertificates.com
eku: SERVER_AND_CLIENT_AUTH
ct_log: true
org: Test Organization Inc.
ou:
- Administration
tracking_info: "Submitted via Ansible"
additional_emails:
- [email protected]
- [email protected]
custom_fields:
text1: Admin
text2: Invoice 25
number1: 342
date1: '2018-01-01'
email1: [email protected]
dropdown1: red
cert_expiry: '2020-08-15'
requester_name: Jo Doe
requester_email: [email protected]
requester_phone: 555-555-5555
entrust_api_user: apiusername
entrust_api_key: a^lv*32!cd9LnT
entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-client.key
返回值
常用的返回值已在 此处 记录,以下是此模块特有的字段
键 |
描述 |
---|---|
为证书链创建的备份文件的名称。 返回值:已更改,如果 示例: |
|
证书有效期剩余的天数。 返回值:成功 示例: |
|
来自ECS API 获取证书调用的完整响应 JSON。 虽然保证响应内容与新的ECS API 版本向前兼容,但Entrust建议不要编写任何基于此字段内容执行操作的剧本。但是,它可能对调试、日志记录或审计目的有用。 返回值:成功 |
|
ECS 中的证书状态。 当前可能的值(将来可能会扩展): 返回值:成功 示例: |
|
生成的证书的目标路径。 返回值:已更改或成功 示例: |
|
已颁发证书的序列号。 此返回值为**整数**。如果需要以冒号分隔的十六进制字符串形式表示序列号,例如 返回值:成功 示例: |
|
用于在ECS中引用和跟踪证书的跟踪ID。 返回值:成功 示例: |