Nota

Este complemento es parte del colección community.crypto (versión 1.4.0).

Para instalarlo use: ansible-galaxy collection install community.crypto.

Para usarlo en un libro de jugadas, especifique: community.crypto.x509_certificate_pipe.

Nuevo en la versión 1.3.0: de community.crypto

  • Sinopsis
  • Requisitos
  • Parámetros
  • Notas
  • Ver también
  • Ejemplos de
  • Valores devueltos

Sinopsis

  • Si tanto la criptografía como las bibliotecas PyOpenSSL están disponibles (y cumplen con los requisitos mínimos de versión), se preferirá la criptografía como backend sobre PyOpenSSL (a menos que el backend esté forzado con select_crypto_backend). Tenga en cuenta que el backend PyOpenSSL quedó obsoleto en Ansible 2.9 y se eliminará en community.crypto 2.0.0.
  • Implementa una noción de proveedor (es decir. selfsigned, ownca, entrust) para su certificado.
  • Utiliza la biblioteca pyOpenSSL o criptografía Python para interactuar con OpenSSL.
  • Tenga en cuenta que el módulo regenera un certificado existente si no coincide con las opciones del módulo o si parece estar dañado. Si le preocupa que esto pueda sobrescribir su certificado existente, considere usar el respaldo opción.
  • los ownca El proveedor está diseñado para generar un certificado OpenSSL firmado con su propio certificado CA (Autoridad de certificación) (certificado autofirmado).
  • Este módulo permite (re) generar certificados OpenSSL.

Requisitos

Los siguientes requisitos son necesarios en el host que ejecuta este módulo.

  • PyOpenSSL> = 0.15 o criptografía> = 1.6 (si usa selfsigned, ownca o assertonly proveedor)

Parámetros

Parámetro Opciones / Valores predeterminados Comentarios
contenidocuerda El certificado existente.
csr_contentcuerda Contenido de la solicitud de firma de certificado (CSR) utilizada para generar este certificado. Esto es mutuamente excluyente con csr_path.
csr_pathsendero Ruta a la solicitud de firma de certificado (CSR) utilizada para generar este certificado. Esto es mutuamente excluyente con csr_content.
entrust_api_client_cert_key_pathsendero La ruta a la clave privada del certificado de cliente que se utiliza para autenticarse en la API de Entrust Certificate Services (ECS). entrust proveedor Esto es necesario si el proveedor entrust.
entrust_api_client_cert_pathsendero La ruta al certificado de cliente que se usa para autenticarse en la API de Entrust Certificate Services (ECS). entrust proveedor Esto es necesario si el proveedor entrust.
entrust_api_keycuerda La clave (contraseña) para la autenticación en la API de Entrust Certificate Services (ECS). entrust proveedor Esto es necesario si el proveedor entrust.
entrust_api_specification_pathsendero Defecto:
“https://cloud.entrust.net/EntrustCloud/documentation/cms-api-2.1.0.yaml”
La ruta al archivo de especificación que define la configuración de la API de Entrust Certificate Services (ECS). Puede usar esto para mantener una copia local de la especificación para evitar descargarla cada vez que se usa el módulo. entrust proveedor.
entrust_api_usercuerda El nombre de usuario para la autenticación en la API de Entrust Certificate Services (ECS). entrust proveedor Esto es necesario si el proveedor entrust.
entrust_cert_typecuerda
    Opciones:

  • STANDARD_SSL
  • ADVANTAGE_SSL
  • UC_SSL
  • EV_SSL
  • WILDCARD_SSL
  • PRIVATE_SSL
  • PD_SSL
  • CDS_ENT_LITE
  • CDS_ENT_PRO
  • SMIME_ENT
Especifique el tipo de certificado solicitado, que solo lo utiliza el entrust proveedor.
entrust_not_aftercuerda Defecto:
“+ 365d”
El momento en el que el certificado deja de ser válido. El tiempo se puede especificar como tiempo relativo o como una marca de tiempo absoluta. Un formato de tiempo absoluto válido es ASN.1 TIME tal como 2019-06-18.Un formato de hora relativo válido es [+-]timespec donde timespec puede ser un número entero + [w | d | h | m | s], tal como +365d o +32w1d2hLa hora siempre se interpretará como UTC.Tenga en cuenta que solo se admite la fecha (día, mes, año) para especificar la fecha de vencimiento del certificado emitido.La fecha y hora completa se ajusta a EST (GMT -5: 00) antes de la emisión, lo que puede resultar en un certificado con una fecha de vencimiento un día antes de lo esperado si se usa un tiempo relativo.La vida útil mínima del certificado es de 90 días y el máximo es de tres años.Si no se especifica este valor, el certificado se detendrá siendo válido los 365 días de la fecha de expedición, sólo es utilizado por el entrust proveedor.
entrust_requester_emailcuerda El correo electrónico del solicitante del certificado (con fines de seguimiento). entrust proveedor Esto es necesario si el proveedor entrust.
entrust_requester_namecuerda El nombre del solicitante del certificado (con fines de seguimiento). Solo lo utiliza el entrust proveedor Esto es necesario si el proveedor entrust.
entrust_requester_phonecuerda El número de teléfono del solicitante del certificado (con fines de seguimiento). Solo lo utiliza el entrust proveedor Esto es necesario si el proveedor entrust.
fuerzabooleano
    Opciones:

  • no
Genere el certificado, incluso si ya existe.
ownca_contentcuerda Contenido del certificado CA (Autoridad de certificación). Solo lo utiliza el ownca proveedor. Esto es mutuamente excluyente con ownca_path.
ownca_create_authority_key_identifierbooleano
    Opciones:

  • no
Cree un Identificador de clave de autoridad a partir del certificado de la CA. Si el CSR proporcionó un identificador de clave de autoridad, se ignora. El Identificador de clave de autoridad se genera a partir del Identificador de clave de sujeto del certificado de CA, si está disponible. Si no está disponible, se utilizará la clave pública del certificado de CA, que solo la utiliza el ownca proveedor Tenga en cuenta que esto solo es compatible si el cryptography se utiliza backend!
ownca_create_subject_key_identifiercuerda
    Opciones:

  • create_if_not_provided
  • always_create
  • never_create
Ya sea para crear el identificador de clave de sujeto (SKI) a partir de la clave pública. create_if_not_provided (predeterminado) solo crea un SKI cuando el CSR no proporciona uno. always_create siempre crea un SKI. Si el CSR proporciona uno, ese se ignora. never_create nunca crea un SKI. Si el CSR proporciona uno, se utiliza ese. ownca proveedor Tenga en cuenta que esto solo es compatible si el cryptography se utiliza backend!
ownca_digestcuerda Defecto:
“sha256”
El algoritmo de resumen que se utilizará para ownca certificado.Esto solo lo utiliza el ownca proveedor.
ownca_not_aftercuerda Defecto:
“+ 3650d”
El momento en el que el certificado deja de ser válido. La hora se puede especificar como hora relativa o como marca de tiempo absoluta. La hora siempre se interpretará como UTC. El formato válido es [+-]timespec | ASN.1 TIME donde timespec puede ser un número entero + [w | d | h | m | s] (p.ej +32w1d2h.Tenga en cuenta que si usa tiempo relativo este módulo NO es idempotente, si no se especifica este valor, el certificado dejará de ser válido dentro de 10 años, solo lo usa el ownca En macOS 10.15 y posteriores, los certificados de servidor TLS deben tener un período de validez de 825 días o menos. Por favor mira https://support.apple.com/en-us/HT210176 para más detalles.
ownca_not_beforecuerda Defecto:
“+ 0s”
El momento en el que el certificado es válido. La hora se puede especificar como hora relativa o como marca de tiempo absoluta. La hora siempre se interpretará como UTC. El formato válido es [+-]timespec | ASN.1 TIME donde timespec puede ser un número entero + [w | d | h | m | s] (p.ej +32w1d2h.Tenga en cuenta que si se usa tiempo relativo este módulo NO es idempotente, si no se especifica este valor, el certificado comenzará a ser válido a partir de ahora. ownca proveedor.
ownca_pathsendero Ruta absoluta remota del certificado CA (Autoridad de certificación). ownca proveedor. Esto es mutuamente excluyente con ownca_content.
ownca_privatekey_contentcuerda Contenido de la clave privada de CA (Autoridad de certificación) que se utilizará al firmar el certificado. ownca proveedor. Esto es mutuamente excluyente con ownca_privatekey_path.
ownca_privatekey_passphrasecuerda La frase de contraseña para ownca_privatekey_path resp. ownca_privatekey_content.Esto solo lo utilizan los ownca proveedor.
ownca_privatekey_pathsendero Ruta a la clave privada de CA (Autoridad de certificación) que se utilizará al firmar el certificado. ownca proveedor. Esto es mutuamente excluyente con ownca_privatekey_content.
ownca_versionentero Defecto:
3
La versión del ownca certificado Hoy en día casi siempre debería ser 3.Esto solo lo utilizan los ownca proveedor.
privatekey_contentcuerda Ruta a la clave privada que se utilizará al firmar el certificado. Esto es mutuamente excluyente con ruta_clave_privada.
privatekey_passphrasecuerda La frase de contraseña para ruta_clave_privada resp. privatekey_content.Esto es necesario si la clave privada está protegida con contraseña.
ruta_clave_privadasendero Ruta a la clave privada que se utilizará al firmar el certificado. Esto es mutuamente excluyente con privatekey_content.
proveedorcuerda / requerido
    Opciones:

  • confiar
  • ownca
  • autofirmado
Nombre del proveedor que se utilizará para generar / recuperar el certificado OpenSSL. entrust proveedor requiere credenciales para el Servicios de certificados de Entrust (ECS) API.
select_crypto_backendcuerda
    Opciones:

  • auto
  • criptografía
  • pyopenssl
Determina qué backend criptográfico usar. La opción predeterminada es auto, que intenta usar cryptography si está disponible, y vuelve a pyopenssl.Si se establece en pyopenssl, intentará usar el pyOpenSSL biblioteca. cryptography, intentará usar el criptografía biblioteca.Tenga en cuenta que el pyopenssl El backend ha quedado obsoleto en Ansible 2.9 y se eliminará en community.crypto 2.0.0. A partir de ese momento, solo el cryptography El backend estará disponible.
selfsigned_create_subject_key_identifiercuerda
    Opciones:

  • create_if_not_provided
  • always_create
  • never_create
Ya sea para crear el identificador de clave de sujeto (SKI) a partir de la clave pública. create_if_not_provided (predeterminado) solo crea un SKI cuando el CSR no proporciona uno. always_create siempre crea un SKI. Si el CSR proporciona uno, ese se ignora. never_create nunca crea un SKI. Si el CSR proporciona uno, se utiliza ese. selfsigned proveedor Tenga en cuenta que esto solo es compatible si el cryptography se utiliza backend!
selfsigned_digestcuerda Defecto:
“sha256”
Algoritmo de resumen que se utilizará al autofirmar el certificado. selfsigned proveedor.
selfsigned_not_aftercuerda Defecto:
“+ 3650d”
El momento en el que el certificado deja de ser válido. La hora se puede especificar como hora relativa o como marca de tiempo absoluta. La hora siempre se interpretará como UTC. El formato válido es [+-]timespec | ASN.1 TIME donde timespec puede ser un número entero + [w | d | h | m | s] (p.ej +32w1d2h.Tenga en cuenta que si usa tiempo relativo este módulo NO es idempotente, si no se especifica este valor, el certificado dejará de ser válido dentro de 10 años, solo lo usa el selfsigned En macOS 10.15 y posteriores, los certificados de servidor TLS deben tener un período de validez de 825 días o menos. Por favor mira https://support.apple.com/en-us/HT210176 para más detalles.
alias: selfsigned_notAfter
selfsigned_not_beforecuerda Defecto:
“+ 0s”
El momento en el que el certificado es válido. La hora se puede especificar como hora relativa o como marca de tiempo absoluta. La hora siempre se interpretará como UTC. El formato válido es [+-]timespec | ASN.1 TIME donde timespec puede ser un número entero + [w | d | h | m | s] (p.ej +32w1d2h.Tenga en cuenta que si se usa tiempo relativo este módulo NO es idempotente, si no se especifica este valor, el certificado comenzará a ser válido a partir de ahora. selfsigned proveedor.
alias: selfsigned_notBefore
selfsigned_versionentero Defecto:
3
Versión del selfsigned certificado Hoy en día casi siempre debería ser 3.Esto solo lo utilizan los selfsigned proveedor.

Notas

Nota

  • Apoyos check_mode.
  • Todos los valores de ASN.1 TIME deben especificarse siguiendo el patrón AAAAMMDDHHMMSSZ.
  • La fecha especificada debe ser UTC. Los minutos y los segundos son obligatorios.
  • Por motivos de seguridad, cuando utilice ownca proveedor, NO debe ejecutar community.crypto.x509_certificate en una máquina de destino, pero en una máquina de CA dedicada. Se recomienda no almacenar la clave privada de CA en la máquina de destino. Una vez firmado, el certificado se puede mover a la máquina de destino.
  • Para el selfsigned proveedor, csr_path y csr_content son opcionales. Si no se proporciona, se crea un certificado sin información (sujeto, nombres alternativos del sujeto, uso de claves, etc.).

Ver también

Ver también

community.crypto.x509_certificate

La documentación oficial sobre el community.crypto.x509_certificate módulo.

community.crypto.openssl_csr

La documentación oficial sobre el community.crypto.openssl_csr módulo.

community.crypto.openssl_csr_pipe

La documentación oficial sobre el community.crypto.openssl_csr_pipe módulo.

community.crypto.openssl_dhparam

La documentación oficial sobre el community.crypto.openssl_dhparam módulo.

community.crypto.openssl_pkcs12

La documentación oficial sobre el community.crypto.openssl_pkcs12 módulo.

community.crypto.openssl_privatekey

La documentación oficial sobre el community.crypto.openssl_privatekey módulo.

community.crypto.openssl_privatekey_pipe

La documentación oficial sobre el community.crypto.openssl_privatekey_pipe módulo.

community.crypto.openssl_publickey

La documentación oficial sobre el community.crypto.openssl_publickey módulo.

Ejemplos de

-name: Generate a Self Signed OpenSSL certificate
  community.crypto.x509_certificate_pipe:provider: selfsigned
    privatekey_path: /etc/ssl/private/ansible.com.pem
    csr_path: /etc/ssl/csr/ansible.com.csr
  register: result
-name: Print the certificate
  ansible.builtin.debug:var: result.certificate

# In the following example, both CSR and certificate file are stored on the# machine where ansible-playbook is executed, while the OwnCA data (certificate,# private key) are stored on the remote machine.-name: (1/2) Generate an OpenSSL Certificate with the CSR provided inline
  community.crypto.x509_certificate_pipe:provider: ownca
    content:" lookup('file', '/etc/ssl/csr/www.ansible.com.crt') "csr_content:" lookup('file', '/etc/ssl/csr/www.ansible.com.csr') "ownca_cert: /path/to/ca_cert.crt
    ownca_privatekey: /path/to/ca_cert.key
    ownca_privatekey_passphrase: hunter2
  register: result

-name: (2/2) Store certificate
  ansible.builtin.copy:dest: /etc/ssl/csr/www.ansible.com.crt
    content:" result.certificate "delegate_to: localhost
  when: result is changed

# In the following example, the certificate from another machine is signed by# our OwnCA whose private key and certificate are only available on this# machine (where ansible-playbook is executed), without having to write# the certificate file to disk on localhost. The CSR could have been# provided by community.crypto.openssl_csr_pipe earlier, or also have been# read from the remote machine.-name: (1/3) Read certificate's contents from remote machine
  ansible.builtin.slurp:src: /etc/ssl/csr/www.ansible.com.crt
  register: certificate_content

-name: (2/3) Generate an OpenSSL Certificate with the CSR provided inline
  community.crypto.x509_certificate_pipe:provider: ownca
    content:" certificate_content.content "csr_content:" the_csr "ownca_cert: /path/to/ca_cert.crt
    ownca_privatekey: /path/to/ca_cert.key
    ownca_privatekey_passphrase: hunter2
  delegate_to: localhost
  register: result

-name: (3/3) Store certificate
  ansible.builtin.copy:dest: /etc/ssl/csr/www.ansible.com.crt
    content:" result.certificate "when: result is changed

Valores devueltos

Los valores de retorno comunes están documentados aquí, los siguientes son los campos exclusivos de este módulo:

Llave Devuelto Descripción
certificadocuerda cambiado o exitoso El contenido del certificado (actual o generado).

Autores

  • Yanis Guenane (@Spredzy)
  • Markus Teufelberger (@MarkusTeufelberger)
  • Felix Fontein (@felixfontein)