community.crypto.certificate_complete_chain 模块 – 给定一组不受信任的和根证书来完成证书链

注意

此模块是 community.crypto 集合 (版本 2.22.3) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.crypto。您需要其他要求才能使用此模块,有关详细信息,请参见 要求

要在剧本中使用它,请指定: community.crypto.certificate_complete_chain

概要

  • 此模块通过从给定的一组证书中查找中间证书来完成给定的 PEM 格式证书链,直到它在另一个给定的证书集中找到根证书。

  • 例如,这可以用来查找 community.crypto.acme_certificate 返回的证书链的根证书。

  • 请注意,此模块_不会_检查链的有效性。它只检查发行者和主题是否匹配,以及签名是否正确。它完全忽略有效期和密钥用法。如果您需要验证生成的链是否有效,请使用 openssl verify ...

要求

以下要求是在执行此模块的主机上需要的。

  • cryptography >= 1.5

参数

参数

注释

input_chain

字符串 / 必需

一组以 PEM 格式形成链的证书的串联。

模块将尝试完成此链。

intermediate_certificates

列表 / 元素=路径

文件名或目录列表。

文件名假定指向包含一个或多个 PEM 格式证书的文件。此文件中的所有证书都将添加到根证书集中。

如果给出目录名,则将扫描目录及其子目录中的所有文件,并尝试将其解析为 PEM 格式的串联证书。

将跟踪符号链接。

默认值: []

root_certificates

列表 / 元素=路径 / 必需

文件名或目录列表。

文件名假定指向包含一个或多个 PEM 格式证书的文件。此文件中的所有证书都将添加到根证书集中。

如果给出目录名,则将扫描目录及其子目录中的所有文件,并尝试将其解析为 PEM 格式的串联证书。

将跟踪符号链接。

属性

属性

支持

描述

check_mode

支持:完全支持

此操作不会修改状态。

可以在 check_mode 中运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持: N/A

此操作不会修改状态。

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改)的详细信息。

示例

# Given a leaf certificate for www.ansible.com and one or more intermediate
# certificates, finds the associated root certificate.
- name: Find root certificate
  community.crypto.certificate_complete_chain:
    input_chain: "{{ lookup('ansible.builtin.file', '/etc/ssl/csr/www.ansible.com-fullchain.pem') }}"
    root_certificates:
    - /etc/ca-certificates/
  register: www_ansible_com
- name: Write root certificate to disk
  ansible.builtin.copy:
    dest: /etc/ssl/csr/www.ansible.com-root.pem
    content: "{{ www_ansible_com.root }}"

# Given a leaf certificate for www.ansible.com, and a list of intermediate
# certificates, finds the associated root certificate.
- name: Find root certificate
  community.crypto.certificate_complete_chain:
    input_chain: "{{ lookup('ansible.builtin.file', '/etc/ssl/csr/www.ansible.com.pem') }}"
    intermediate_certificates:
    - /etc/ssl/csr/www.ansible.com-chain.pem
    root_certificates:
    - /etc/ca-certificates/
  register: www_ansible_com
- name: Write complete chain to disk
  ansible.builtin.copy:
    dest: /etc/ssl/csr/www.ansible.com-completechain.pem
    content: "{{ ''.join(www_ansible_com.complete_chain) }}"
- name: Write root chain (intermediates and root) to disk
  ansible.builtin.copy:
    dest: /etc/ssl/csr/www.ansible.com-rootchain.pem
    content: "{{ ''.join(www_ansible_com.chain) }}"

返回值

常见的返回值在 此处 有记录,以下是此模块特有的字段

描述

chain

列表 / 元素=字符串

添加到给定输入链的链。包括根证书。

作为 PEM 证书列表返回。

返回:成功

complete_chain

列表 / 元素=字符串

完整的链,包括叶子、所有中间证书和根证书。

作为 PEM 证书列表返回。

返回:成功

root

字符串

PEM 格式的根证书。

返回:成功

作者

  • Felix Fontein (@felixfontein)