community.crypto.openssl_privatekey_info 模块 – 提供 OpenSSL 私钥的信息

注意

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

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

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

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

概要

  • 此模块允许查询有关 OpenSSL 私钥的信息。

  • 如果密钥一致性检查失败,模块将失败,因为这表明是一个伪造的私钥。在这种情况下,所有返回变量仍然返回。请注意,并非所有密钥类型都提供密钥一致性检查;如果没有可用的,则对于 key_is_consistent,将返回 none

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

要求

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

  • cryptography >= 1.2.3

参数

参数

注释

check_consistency

布尔值

在 community.crypto 2.0.0 中添加

是否检查私钥的一致性。

在 community.crypto < 2.0.0 中,始终检查一致性。

自 community.crypto 2.0.0 起,默认情况下已禁用一致性检查,以避免私钥材料被传输和计算,仅在明确请求时才执行。这可以潜在地防止 侧信道攻击

请注意,一致性检查仅适用于某些密钥类型,并且可能取决于 cryptography 库的版本。例如,使用 cryptography 42.0.0 及更高版本,不再可以检查 RSA 密钥的一致性。

选项

  • false ← (默认)

  • true

content

字符串

在 community.crypto 1.0.0 中添加

私钥文件的内容。

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

passphrase

字符串

私钥的密码。

path

path

从中加载私钥文件的远程绝对路径。

return_private_key_data

布尔值

是否返回私钥数据。

仅当您希望此密钥的私人信息离开远程计算机时,才将此项设置为 true

警告:您必须确保私钥数据不会意外记录!

选项

  • false ← (默认)

  • true

select_crypto_backend

字符串

确定要使用的加密后端。

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

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

选项

  • "auto" ← (默认)

  • "cryptography"

属性

属性

支持

描述

check_mode

支持: 完整

此操作不修改状态。

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

diff_mode

支持: N/A

此操作不修改状态。

在 diff 模式下,当处于 check_mode 时,将返回有关已更改(或可能需要更改)的详细信息。

另请参阅

另请参阅

community.crypto.openssl_privatekey

生成 OpenSSL 私钥。

community.crypto.openssl_privatekey_pipe

生成 OpenSSL 私钥,无需访问磁盘。

community.crypto.openssl_privatekey_info 过滤器插件

此模块的过滤器变体。

示例

- name: Generate an OpenSSL private key with the default values (4096 bits, RSA)
  community.crypto.openssl_privatekey:
    path: /etc/ssl/private/ansible.com.pem

- name: Get information on generated key
  community.crypto.openssl_privatekey_info:
    path: /etc/ssl/private/ansible.com.pem
  register: result

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

返回值

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

描述

can_load_key

布尔值

模块是否能够从磁盘加载私钥。

返回: 始终

can_parse_key

布尔值

模块是否能够解析私钥。

返回: 始终

key_is_consistent

布尔值

密钥是否一致。除了 truefalse 之外,还可以返回 none,表示无法检查一致性。

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

返回:check_consistency=true

private_data

字典

私钥数据。取决于密钥类型。

返回: 成功时,且当 return_private_key_data 设置为 true

public_data

字典

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

返回: 成功时

curve

字符串

ECC 的曲线名称。

返回:type=ECC

exponent

整数

RSA 密钥的公共指数。

返回:type=RSA

exponent_size

整数

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

返回:type=ECC

g

整数

DSA 的 g 值。

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

返回:type=DSA

modulus

整数

RSA 密钥的模数。

返回:type=RSA

p

整数

DSA 的 p 值。

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

返回:type=DSA

q

整数

DSA 的 q 值。

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

返回:type=DSA

size

整数

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

返回:type=RSAtype=DSA

x

整数

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

返回:type=ECC

y

整数

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

对于 type=DSA,这是一个公开已知的群元素,其相对于 g 的离散对数是私钥。

返回:type=DSAtype=ECC

public_key

字符串

PEM 格式的私钥的公钥。

返回: 成功时

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

public_key_fingerprints

字典

私钥公钥的指纹。

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

返回: 成功时

示例: "{'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..."

type

字符串

密钥的类型。

可以是 RSADSAECCEd25519X25519Ed448X448 之一。

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

返回: 成功时

示例: "RSA"

作者

  • Felix Fontein (@felixfontein)

  • Yanis Guenane (@Spredzy)