community.crypto.openssl_csr_pipe 模块 – 生成 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_pipe。
community.crypto 1.3.0 中的新增功能
概要
- 请注意,如果现有的 CSR 与模块的选项不匹配,或者如果它似乎已损坏,则该模块会重新生成它。 
- 此模块允许(重新)生成 OpenSSL 证书签名请求。 
- 此模块支持 subjectAltName、keyUsage、extendedKeyUsage、basicConstraints 和 OCSP Must Staple 扩展。 
要求
执行此模块的主机上需要以下要求。
- cryptography >= 1.3 
参数
| 参数 | 注释 | 
|---|---|
| 将出现在证书签名请求的颁发机构证书颁发者字段中的名称。 值必须以其选项为前缀。(即  示例: 如果指定,则还必须指定  请注意,商业 CA 会忽略此值,分别使用他们自己选择的值。指定此选项主要用于自签名证书或您自己的 CA。 请注意,仅当使用  只有在指定了  | |
| 颁发机构证书序列号。 如果指定,则还必须指定  请注意,仅当使用  请注意,商业 CA 会忽略此值,分别使用他们自己选择的值。指定此选项主要用于自签名证书或您自己的 CA。 只有在指定了  此选项接受一个**整数**。如果要以冒号分隔的十六进制字符串(例如  | |
| 颁发机构密钥标识符,以十六进制字符串的形式表示,其中两个字节用冒号分隔。 示例: 请注意,商业 CA 会忽略此值,分别使用他们自己选择的值。指定此选项主要用于自签名证书或您自己的 CA。 请注意,仅当使用  只有在指定了  | |
| 指示基本约束,例如证书是否为 CA。 | |
| 是否应将 basicConstraints 扩展视为关键扩展。 选择 
 | |
| 证书签名请求主题的 commonName 字段。 | |
| 现有的 CSR。 | |
| 证书签名请求主题的 countryName 字段。 | |
| 从公钥创建主体密钥标识符。 请注意,商业 CA 可能会忽略该值,或者使用他们自己选择的值。指定此选项主要用于自签名证书或自有 CA。 请注意,仅当使用  选择 
 | |
| 允许指定一个或多个 CRL 分发点。 仅  | |
| 关于 CRL 颁发者的信息。 | |
| 描述如何检索 CRL。 与  示例: | |
| 执行吊销检查时,可用于此分发点的原因列表。 选择 
 | |
| 描述如何相对于 CRL 颁发者检索 CRL。 与  示例: 仅当安装了 cryptography >= 1.6 时才能使用。 | |
| 使用私钥签署证书签名请求时使用的摘要。 默认值:  | |
| 证书签名请求主题的 emailAddress 字段。 | |
| 对公钥允许使用的用途的附加限制(例如客户端身份验证、服务器身份验证)。 | |
| extKeyUsage 扩展是否应被视为关键。 选择 
 | |
| 这定义了证书中包含的密钥的用途(例如加密、签名、证书签名)。 | |
| keyUsage 扩展是否应被视为关键。 选择 
 | |
| 证书签名请求主题的 localityName 字段。 | |
| 名称约束扩展是否应被视为关键。 选择 
 | |
| 对于 CA 证书,这指定一个标识符列表,这些标识符描述了此 CA 不允许颁发证书的名称子树。 值必须以其选项为前缀。(即, | |
| 对于 CA 证书,这指定一个标识符列表,这些标识符描述了此 CA 允许颁发证书的名称子树。 值必须以其选项为前缀。(即, | |
| OCSP Must Staple 扩展是否应被视为关键。 请注意,根据 RFC,此扩展不应标记为关键,因为不了解 OCSP Must Staple 的旧客户端必须拒绝此类证书(请参阅 https://tools.ietf.org/html/rfc7633#section-4)。 选择 
 | |
| 证书签名请求主题的 organizationName 字段。 | |
| 证书签名请求主题的 organizationalUnitName 字段。 | |
| 用于签署证书签名请求的私钥内容。 必须指定  | |
| 私钥的密码。 如果私钥受密码保护,则这是必需的。 | |
| 用于签署证书签名请求的私钥路径。 必须指定  | |
| 确定要使用的加密后端。 默认选项是  如果设置为  选择 
 | |
| 证书签名请求主题的 stateOrProvinceName 字段。 | |
| 证书签名请求主题名称字段中将存在的键/值对。 如果您需要为同一个键指定多个值,请使用列表作为值。 如果组件的顺序很重要,请使用  与  | |
| 附加到证书签名请求的主题备用名称 (SAN) 扩展。 值必须以其选项为前缀。(这些是  请注意,如果没有指定 SAN,但指定了通用名称,则通用名称将作为 SAN 添加,除非  更多信息请访问 https://tools.ietf.org/html/rfc5280#section-4.2.1.6。 | |
| subjectAltName 扩展是否应被视为关键。 选择 
 | |
| 主体密钥标识符为十六进制字符串,其中两个字节用冒号分隔。 示例: 请注意,商业 CA 会忽略此值,分别使用他们自己选择的值。指定此选项主要用于自签名证书或您自己的 CA。 请注意,仅当  请注意,仅当使用  | |
| 一个字典列表,其中每个字典必须包含一个键/值对。此键/值对将存在于证书签名请求的主题名称字段中。 如果您想在一行中为同一个键指定多个值,则可以使用列表作为值。 与  | |
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 支持: 完整 目前在检查模式下,私钥不会被(重新)生成,只会设置更改状态。这将在 community.crypto 3.0.0 中更改。 从 community.crypto 3.0.0 开始,该模块将忽略检查模式,并且始终表现得好像检查模式未激活。如果您认为这会破坏您对此模块的使用情况,请在 community.crypto 存储库中创建一个问题。 | 可以在  | |
| 支持: 完整 | 当处于差异模式时,将返回有关已更改(或可能需要在  | 
说明
注意
- 如果证书签名请求已存在,则会检查 subjectAltName、keyUsage、extendedKeyUsage 和 basicConstraints 是否仅包含请求的值,是否按要求启用了 OCSP Must Staple,以及请求是否由给定的私钥签名。 
另请参阅
另请参阅
- community.crypto.openssl_csr
- 生成 OpenSSL 证书签名请求 (CSR)。 
- community.crypto.x509_certificate
- 生成和/或检查 OpenSSL 证书。 
- community.crypto.x509_certificate_pipe
- 生成和/或检查 OpenSSL 证书。 
- community.crypto.openssl_dhparam
- 生成 OpenSSL Diffie-Hellman 参数。 
- community.crypto.openssl_pkcs12
- 生成 OpenSSL PKCS#12 存档。 
- community.crypto.openssl_privatekey
- 生成 OpenSSL 私钥。 
- community.crypto.openssl_privatekey_pipe
- 生成不访问磁盘的 OpenSSL 私钥。 
- community.crypto.openssl_publickey
- 从其私钥生成 OpenSSL 公钥。 
- community.crypto.openssl_csr_info
- 提供 OpenSSL 证书签名请求 (CSR) 的信息。 
- community.crypto.parse_serial 过滤器插件
- 将以冒号分隔的十六进制数字列表的序列号转换为整数。 
示例
- name: Generate an OpenSSL Certificate Signing Request
  community.crypto.openssl_csr_pipe:
    privatekey_path: /etc/ssl/private/ansible.com.pem
    common_name: www.ansible.com
  register: result
- name: Print CSR
  ansible.builtin.debug:
    var: result.csr
- name: Generate an OpenSSL Certificate Signing Request with an inline CSR
  community.crypto.openssl_csr:
    content: "{{ lookup('ansible.builtin.file', '/etc/ssl/csr/www.ansible.com.csr') }}"
    privatekey_content: "{{ private_key_content }}"
    common_name: www.ansible.com
  register: result
- name: Store CSR
  ansible.builtin.copy:
    dest: /etc/ssl/csr/www.ansible.com.csr
    content: "{{ result.csr }}"
  when: result is changed
返回值
通用返回值在此处记录 此处,以下是此模块独有的字段
| 键 | 描述 | 
|---|---|
| 指示证书是否属于 CA 返回: changed 或 success 示例:  | |
| (当前或生成的)CSR 的内容。 返回: changed 或 success | |
| 对公钥用途的附加限制 返回: changed 或 success 示例:  | |
| 公钥可能用于的目的 返回: changed 或 success 示例:  | |
| CA 不能为其签名证书的排除子树列表。 返回: changed 或 success 示例:  | |
| 用于签名证书的允许子树列表。 返回: changed 或 success 示例:  | |
| 指示证书是否启用了 OCSP Must Staple 功能 返回: changed 或 success 示例:  | |
| 为之生成 CSR 的 TLS/SSL 私钥的路径 如果私钥已在  返回: changed 或 success 示例:  | |
| 附加到 CSR 的主题元组列表 返回: changed 或 success 示例:  | |
| 此 CSR 有效的备用名称 返回: changed 或 success 示例:  | 
