community.crypto.ecs_certificate 模块 – 使用 Entrust 证书服务 (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 证书服务 (ECS) API 创建、重新颁发和续订证书。
需要 Entrust 证书服务 (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 中的证书状态。 当前可能的取值(将来可能会扩展)包括: 返回:成功 示例: |
|
生成的证书的目标路径。 返回值: changed 或 success 示例: |
|
已颁发证书的序列号。 此返回值为整数。如果您需要以冒号分隔的十六进制字符串形式表示序列号,例如 返回:成功 示例: |
|
用于在 ECS 中引用和跟踪证书的跟踪 ID。 返回:成功 示例: |