community.crypto.openssl_csr_info 模块 – 提供 OpenSSL 证书签名请求 (CSR) 的信息

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.crypto。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.crypto.openssl_csr_info

概要

  • 此模块允许查询 OpenSSL 证书签名请求 (CSR) 的信息。

  • 如果 CSR 签名无法验证,模块将失败。在这种情况下,所有返回变量仍然会返回。

  • 它使用 cryptography python 库与 OpenSSL 进行交互。

要求

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

参数

参数

注释

content

字符串

在 community.crypto 1.0.0 中添加

CSR 文件的内容。

必须指定 pathcontent 中的一个,但不能同时指定。

name_encoding

字符串

如何在返回值中编码名称(DNS 名称、URI、电子邮件地址)。

ignore 将使用后端返回的编码。

idna 会将域名所有标签转换为 IDNA 编码。IDNA2008 将是首选,如果 IDNA2008 编码失败,将使用 IDNA2003。

unicode 会将域名所有标签转换为 Unicode。IDNA2008 将是首选,如果 IDNA2008 解码失败,将使用 IDNA2003。

请注意idnaunicode 需要安装 idna Python 库

选择

  • "ignore" ←(默认)

  • "idna"

  • "unicode"

path

path

从其中加载 CSR 文件的远程绝对路径。

必须指定 pathcontent 中的一个,但不能同时指定。

select_crypto_backend

字符串

确定要使用的加密后端。

默认选择是 auto,它会尝试使用 cryptography (如果可用)。

如果设置为 cryptography,则会尝试使用 cryptography 库。

选择

  • "auto" ←(默认)

  • "cryptography"

属性

属性

支持

描述

check_mode

支持:完整

此操作不会修改状态。

可以在 check_mode 中运行并返回已更改的状态预测,而无需修改目标。

diff_mode

支持: 不适用

此操作不会修改状态。

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

另请参阅

另请参阅

community.crypto.openssl_csr

生成 OpenSSL 证书签名请求 (CSR)。

community.crypto.openssl_csr_pipe

生成 OpenSSL 证书签名请求 (CSR)。

community.crypto.openssl_csr_info 过滤器插件

此模块的过滤器变体。

community.crypto.to_serial 过滤器插件

将整数转换为以冒号分隔的十六进制数字列表。

示例

- name: Generate an OpenSSL Certificate Signing Request
  community.crypto.openssl_csr:
    path: /etc/ssl/csr/www.ansible.com.csr
    privatekey_path: /etc/ssl/private/ansible.com.pem
    common_name: www.ansible.com

- name: Get information on the CSR
  community.crypto.openssl_csr_info:
    path: /etc/ssl/csr/www.ansible.com.csr
  register: result

- name: Dump information
  ansible.builtin.debug:
    var: result

返回值

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

描述

authority_cert_issuer

列表 / 元素=字符串

CSR 的授权证书颁发者,以通用名称列表形式表示。

如果不存在 AuthorityKeyIdentifier 扩展,则为 none

有关如何处理 IDN,请参阅 name_encoding

返回: 成功

示例: ["DNS:www.ansible.com", "IP:1.2.3.4"]

authority_cert_serial_number

整数

CSR 的授权证书序列号。

如果不存在 AuthorityKeyIdentifier 扩展,则为 none

此返回值是一个整数。如果需要以冒号分隔的十六进制字符串形式表示序列号,例如 11:22:33,则需要使用 community.crypto.to_serial 将其转换为该形式。

返回: 成功

示例: 12345

authority_key_identifier

字符串

CSR 的授权密钥标识符。

标识符以十六进制形式返回,使用 : 分隔字节。

如果不存在 AuthorityKeyIdentifier 扩展,则为 none

返回: 成功

示例: "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22:33"

basic_constraints

列表 / 元素=字符串

basic_constraints 扩展中的条目,如果不存在该扩展,则为 none

返回: 成功

示例: ["CA:TRUE", "pathlen:1"]

basic_constraints_critical

布尔值

basic_constraints 扩展是否为关键扩展。

返回: 成功

extended_key_usage

列表 / 元素=字符串

extended_key_usage 扩展中的条目,如果不存在该扩展,则为 none

返回: 成功

示例: ["Biometric Info", "DVCS", "Time Stamping"]

extended_key_usage_critical

布尔值

extended_key_usage 扩展是否为关键扩展。

返回: 成功

extensions_by_oid

字典

返回每个扩展 OID 的字典

返回: 成功

示例: {"1.3.6.1.5.5.7.1.24": {"critical": false, "value": "MAMCAQU="}}

critical

布尔值

扩展是否为关键扩展。

返回: 成功

value

字符串

扩展的 Base64 编码值(DER 格式)。

注意,根据使用的 cryptography 版本,可能无法提取扩展的 ASN.1 内容,而只能在 cryptography 解析扩展的情况下提供重新编码的扩展内容。通常这应该会得到完全相同的值,除非原始扩展值格式错误。

返回: 成功

示例: "MAMCAQU="

key_usage

字符串

key_usage 扩展中的条目,如果不存在该扩展,则为 none

返回: 成功

示例: "['Key Agreement', 'Data Encipherment']"

key_usage_critical

布尔值

key_usage 扩展是否为关键扩展。

返回: 成功

name_constraints_critical

布尔值

在 community.crypto 1.1.0 中添加

name_constraints 扩展是否为关键扩展。

如果不存在扩展,则为 none

返回: 成功

name_constraints_excluded

列表 / 元素=字符串

在 community.crypto 1.1.0 中添加

CA 不能为其签署证书的排除子树列表。

如果不存在扩展,则为 none

有关如何处理 IDN,请参阅 name_encoding

返回: 成功

示例: ["email:.com"]

name_constraints_permitted

列表 / 元素=字符串

在 community.crypto 1.1.0 中添加

允许为其签署证书的子树列表。

返回: 成功

示例: ["email:.somedomain.com"]

ocsp_must_staple

布尔值

如果存在 OCSP Must Staple 扩展,则为 true,否则为 none

返回: 成功

ocsp_must_staple_critical

布尔值

ocsp_must_staple 扩展是否为关键扩展。

返回: 成功

public_key

字符串

PEM 格式的 CSR 公钥

返回: 成功

示例: "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A..."

public_key_data

字典

在 community.crypto 1.7.0 中添加

公钥数据。取决于公钥的类型。

返回: 成功

curve

字符串

ECC 的曲线名称。

返回:public_key_type=ECC

exponent

整数

RSA 密钥的公钥指数。

返回:public_key_type=RSA

exponent_size

整数

私钥的最大位数。这基本上是所用子组的位数大小。

返回:public_key_type=ECC

g

整数

DSA 的 g 值。

这是跨越所用素域乘法群的子群的元素。

返回:public_key_type=DSA

modulus

整数

RSA 密钥的模数。

返回:public_key_type=RSA

p

整数

DSA 的 p 值。

这是进行算术运算的素数模数。

返回:public_key_type=DSA

q

整数

DSA 的 q 值。

这是一个能整除 p - 1 的素数,同时也是所用素域乘法群的子群的阶。

返回:public_key_type=DSA

size

整数

模数的位数大小(RSA)或素数(DSA)。

返回:public_key_type=RSApublic_key_type=DSA

x

整数

椭圆曲线上公共点的 x 坐标。

返回:public_key_type=ECC

y

整数

对于 public_key_type=ECC,这是椭圆曲线上公共点的 y 坐标。

对于 public_key_type=DSA,这是公开已知的群元素,其关于 g 的离散对数是私钥。

返回:public_key_type=DSApublic_key_type=ECC

public_key_fingerprints

字典

CSR 公钥的指纹。

对于每个可用的哈希算法,都会计算指纹。

返回: 成功

示例: "{'sha256': 'd4:b3:aa:6d:c8:04:ce:4e:ba:f6:29:4d:92:a3:94:b0:c2:ff:bd:bf:33:63:11:43:34:0f:51:b0:95:09:2f:63', 'sha512': 'f7:07:4a:f0:b0:f0:e6:8b:95:5f:f9:e6:61:0a:32:68:f1..."

public_key_type

字符串

在 community.crypto 1.7.0 中添加

CSR 的公钥类型。

RSADSAECCEd25519X25519Ed448X448 之一。

如果无法确定密钥类型,将以 unknown 开头。

返回: 成功

示例: "RSA"

signature_valid

布尔值

CSR 的签名是否有效。

如果检查返回 false,则模块将失败。

返回: 成功

subject

字典

CSR 的主题,以字典形式表示。

请注意,对于重复的值,仅返回最后一个值。

返回: 成功

示例: {"commonName": "www.example.com", "emailAddress": "[email protected]"}

subject_alt_name

列表 / 元素=字符串

subject_alt_name 扩展中的条目,如果不存在该扩展,则为 none

有关如何处理 IDN,请参阅 name_encoding

返回: 成功

示例: ["DNS:www.ansible.com", "IP:1.2.3.4"]

subject_alt_name_critical

布尔值

subject_alt_name 扩展是否为关键扩展。

返回: 成功

subject_key_identifier

字符串

CSR 的主体密钥标识符。

标识符以十六进制形式返回,使用 : 分隔字节。

如果不存在 SubjectKeyIdentifier 扩展,则为 none

返回: 成功

示例: "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22:33"

subject_ordered

列表 / 元素=列表

CSR 的主题,以有序的元组列表形式表示。

返回: 成功

示例: [["commonName", "www.example.com"], [{"emailAddress": "[email protected]"}]]

作者

  • Felix Fontein (@felixfontein)

  • Yanis Guenane (@Spredzy)