---
title: Certificado OpenSSL
slug: aiops-documentacao-tecnica/certificado-openssl
docTags: 
createdAt: 2024-07-18T21:06:49.509Z
---

## Resumo

- Este módulo permite (re) gerar certificados OpenSSL. Ele implementa uma noção de provedor (ie. `selfsigned`, `ownca`, `acme`, `assertonly`) Para o seu certificado. 
- O provedor 'assertonly' destina-se a casos de uso em que alguém está interessado apenas em verificar as propriedades de um certificado fornecido. 
- O provedor 'ownca' se destina a gerar um certificado OpenSSL assinado com seu próprio certificado CA (Autoridade de Certificação) (certificado autoassinado). Muitas propriedades que podem ser especificadas neste módulo são para validação de um certificado existente ou gerado recentemente. O local adequado para especificá-los, se você deseja receber um certificado com essas propriedades, é um CSR (Solicitação de Assinatura de Certificado).

## Parâmetros

| **Parâmetro**                                                             | **Tipo**            | **Escolhas \| Valor Padrão**                                           | **Comentários**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------------------------------------------- | ------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| acme\_accountkey\_path                                                    | path                |                                                                        | Caminho para a chave da conta do `acme` provedor<br /><br />Isso só é usado pelo `acme` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| acme\_chain                                                               | boolean             | Escolhas:<br />- true(default)<br />- false                            | Incluir o certificado intermediário para o certificado gerado<br /><br />Isso só é usado pelo `acme` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| acme\_challenge\_path                                                     | path                |                                                                        | Caminho para o diretório de desafio ACME que é servido em <br /><br />http: // \<HOST>: 80 / .well-known / acme-challenge /<br /><br />Isso só é usado pelo `acme` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| attributes<br /><br />aliases: attr                                       | string              |                                                                        | Atributos que o arquivo ou diretório deve ter. Para obter os sinalizadores suportados, consulte a página do manual do *chattr* no sistema de destino. Essa string deve conter os atributos na mesma ordem que aquela exibida por *lsattr*.<br /><br />operador `=` é assumido como padrão, caso contrário, `+` ou `-` os operadores precisam ser incluídos na string.                                                                                                                                                                                                                                                                                                                                                                    |
| csr\_path                                                                 | path                |                                                                        | Caminho para a solicitação de assinatura de certificado (CSR) usada para gerar este certificado. Isso não é necessário no `assertonly` modo.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| extended\_key\_usage<br /><br />aliases: extendedKeyUsage                 | list / elements=str |                                                                        | O campo de extensão *extended\_key\_usage* deve conter todos esses valores.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| extended\_key\_usage\_strict<br /><br />aliases: extendedKeyUsage\_strict | boolean             | Escolhas:<br />- true<br />- false(default)                            | Se definido como True, o campo de extensão *extended\_key\_usage* deve conter apenas esses valores.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| force                                                                     | boolean             | Escolhas:<br />- true<br />- false(default)                            | Gere o certificado, mesmo que já exista.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| group                                                                     | string              |                                                                        | Nome do grupo que deve possuir o arquivo / diretório, como seria alimentado para *chown* .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| has\_expired                                                              | boolean             | Escolhas:<br />- true<br />- false(default)                            | Verifica se o certificado expirou / não expirou no momento em que o módulo é executado.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| invalid\_at                                                               | string              |                                                                        | O certificado deve ser inválido neste momento.\\<br /><br />O carimbo de data / hora é formatado como ASN.1 TIME.\\<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| issuer                                                                    | dict                |                                                                        | Pares de Key/value que devem estar presentes no campo de nome do emissor do certificado.<br /><br />Se você precisar especificar mais de um valor com a mesma chave, use uma lista como valor.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| issuer\_strict                                                            | boolean             | Escolhas:<br />- true<br />- false(default)                            | Se definido como True, o campo do *emissor* deve conter apenas esses valores.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| key\_usage<br /><br />aliases: keyUsage                                   | list / elements=str |                                                                        | O campo de extensão *key\_usage* deve conter todos esses valores.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| key\_usage\_strict<br /><br />aliases: keyUsage\_strict                   | boolean             | Escolhas:<br />- true<br />- false(default)                            | Se definido como True, o campo de extensão *key\_usage* deve conter apenas esses valores.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mode                                                                      | string              |                                                                        | Modo em que o arquivo ou diretório deve ser. Para aqueles acostumados com */ usr / bin / chmod,* lembre-se de que os modos são, na verdade, números octais. Você deve adicionar um zero à esquerda para que o analisador YAML do Atmosphere saiba que é um número octal (como 0644ou 01777) ou citá-lo (como '644'ou '1777') para que Atmosphere receba uma string e possa fazer sua própria conversão de string em número. Fornecer um número a Atmosphere sem seguir uma dessas regras resultará em um número decimal que terá resultados inesperados.                                                                                                                                                                                 |
| not\_after<br /><br />aliases: notAfter                                   | string              |                                                                        | O certificado deve expirar neste momento.<br /><br />O carimbo de data / hora é formatado como ASN.1 TIME.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| not\_before<br /><br />aliases: notBefore                                 | string              |                                                                        | O certificado deve começar a se tornar válido neste momento.<br /><br />O carimbo de data / hora é formatado como ASN.1 TIME.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ownca\_digest                                                             | string              | Default:<br />- "sha256"                                               | Algoritmo de resumo a ser usado para o ownca certificado.<br /><br />Isso só é usado pelo ownca provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ownca\_not\_after                                                         | string              |                                                                        | O carimbo de data / hora em que o certificado deixa de ser válido. O carimbo de data / hora é formatado como ASN.1 TIME. Se este valor não for especificado, o certificado deixará de ser válido daqui a 10 anos.<br /><br />Isso só é usado pelo `ownca` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ownca\_not\_before                                                        | string              |                                                                        | O carimbo de data / hora em que o certificado começa a ser válido. O carimbo de data / hora é formatado como ASN.1 TIME. Se este valor não for especificado, o certificado passará a ser válido a partir de agora.<br /><br />Isso só é usado pelo `ownca` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ownca\_path                                                               | path                |                                                                        | Caminho remoto absoluto do certificado CA (Autoridade de Certificação).<br /><br />Isso só é usado pelo `ownca` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ownca\_privatekey\_passphrase                                             | string              |                                                                        | A senha *longa* para *ownca\_privatekey\_path*.<br /><br />Isso só é usado pelo `ownca` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ownca\_privatekey\_path                                                   | path                |                                                                        | Caminho para a chave privada CA (Autoridade de Certificação) a ser usada ao assinar o certificado.\\<br /><br />Isso só é usado pelo `ownca` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ownca\_version                                                            | integer             | Default:<br />- 3                                                      | Versão do `ownca` certificado.<br /><br />Hoje em dia, quase sempre deveria ser `3`.<br /><br />Isso só é usado pelo `ownca` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| owner                                                                     | string              |                                                                        | Nome do usuário que deve possuir o arquivo / diretório, como seria alimentado para *chown* .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| path - required                                                           | path                |                                                                        | Caminho absoluto remoto onde o arquivo de certificado gerado deve ser criado ou já está localizado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| privatekey\_passphrase                                                    | string              |                                                                        | A senha *longa* para *privatekey\_path*. <br /><br />Isso é necessário se a chave privada for protegida por senha.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| privatekey\_path                                                          | path                |                                                                        | Caminho para a chave privada a ser usada ao assinar o certificado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| provider - required                                                       | string              | Escolhas:<br />- selfsigned<br />- ownca<br />- assertonly<br />- acme | Nome do provedor a ser usado para gerar / recuperar o certificado OpenSSL. O `assertonly` provedor não gerará arquivos e falhará se o arquivo de certificado estiver ausente.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| selevel                                                                   | string              | Default:<br />- "s0"                                                   | Parte do nível do contexto do arquivo SELinux. Este é o atributo MLS / MCS, também conhecido como range. \_defaultrecurso funciona como *seuer* .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| selfsigned\_digest                                                        | string              | Default:<br />"sha256"                                                 | Algoritmo de resumo a ser usado ao autoassinar o certificadoIsso só é usado pelo selfsignedprovedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| selfsigned\_not\_after<br /><br />aliases: selfsigned\_notAfter           | string              |                                                                        | O carimbo de data / hora em que o certificado deixa de ser válido. O carimbo de data / hora é formatado como ASN.1 TIME. Se este valor não for especificado, o certificado deixará de ser válido daqui a 10 anos.<br /><br />Isso só é usado pelo `selfsigned` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| selfsigned\_not\_before<br /><br />aliases: selfsigned\_notBefore         | string              |                                                                        | O carimbo de data / hora em que o certificado começa a ser válido. O carimbo de data / hora é formatado como ASN.1 TIME. Se este valor não for especificado, o certificado passará a ser válido a partir de agora.<br /><br />Isso só é usado pelo `selfsigned` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| selfsigned\_version                                                       | integer             | Default:<br />- 3                                                      | Versão do `selfsigned` certificado.<br /><br />Hoje em dia, quase sempre deveria ser `3`.<br /><br />Isso só é usado pelo `selfsigned` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| serole                                                                    | string              |                                                                        | Função parte do contexto do arquivo SELinux, `_default` recurso funciona para *seuser* .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| setype                                                                    | string              |                                                                        | Digite parte do contexto do arquivo SELinux, o `_default` recurso funciona como para *seuser* .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| seuser                                                                    | string              |                                                                        | Parte do usuário do contexto do arquivo SELinux. Terá como padrão a política do sistema, se aplicável. Se definido como `_default`, usará a userparte da política, se disponível.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| signature\_algorithms                                                     | list / elements=str |                                                                        | lista de algoritmos com os quais você aceitaria o certificado a ser assinado (por exemplo, \['sha256WithRSAEncryption', 'sha512WithRSAEncryption']).<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| state                                                                     | string              | Escolhas:<br />- present(default)<br />- absent                        | Se o certificado deve existir ou não, agir se o estado for diferente do que é declarado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| subject                                                                   | dict                |                                                                        | Pares de chave / valor que devem estar presentes no campo de nome do assunto do certificado. Se você precisar especificar mais de um valor com a mesma chave, use uma lista como valor.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| subject\_alt\_name<br /><br />aliases: subjectAltName                     | string              |                                                                        | O campo de extensão *subject\_alt\_name* deve conter esses valores.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| subject\_alt\_name\_strict<br /><br />aliases: subjectAltName\_strict     | boolean             | Escolhas:<br />- true<br />- false(default)                            | Se definido como True, o campo de extensão *subject\_alt\_name* deve conter apenas esses valores.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| subject\_strict<br />                                                     | boolean             | Escolhas:<br />- true<br />- false(default)                            | Se definido como True, o campo de *assunto* deve conter apenas esses valores.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| unsafe\_writes                                                            | boolean             | Escolhas:<br />- true<br />- false(default)                            | Por padrão, este módulo usa operações atômicas para evitar corrupção de dados ou leituras inconsistentes dos arquivos de destino, mas às vezes os sistemas são configurados ou apenas interrompidos de maneiras que evitam isso. Um exemplo são os arquivos montados no docker, que não podem ser atualizados atomicamente de dentro do contêiner e só podem ser gravados de maneira insegura.<br /><br />Esta opção permite que o Atmosphere recorra a métodos não seguros de atualização de arquivos quando as operações atômicas falham (no entanto, não força o Atmosphere a realizar gravações inseguras). <br /><br />IMPORTANTE! As gravações inseguras estão sujeitas a condições de corrida e podem levar à corrupção de dados. |
| valid\_at                                                                 | string              |                                                                        | O certificado deve ser válido neste momento.<br /><br />O carimbo de data / hora é formatado como ASN.1 TIME.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| valid\_in                                                                 | string              |                                                                        | O certificado ainda deve ser válido em *valid\_in* segundos a partir de agora.Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| version                                                                   | integer             |                                                                        | A versão do certificado.Hoje em dia, quase sempre deveria ser `3`.<br /><br />Isso só é usado pelo `assertonly` provedor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |



## Notas

- Todos os valores de ASN.1 TIME devem ser especificados seguindo o padrão YYYYMMDDHHMMSSZ. A data especificada deve ser UTC. Minutos e segundos são obrigatórios.
- Por motivos de segurança, ao usar o `ownca` provedor. Você NÃO deve executar o openssl\_certificate em uma máquina de destino, mas em uma máquina CA dedicada. Recomenda-se não armazenar a chave privada da CA na máquina de destino. Depois de assinado, o certificado pode ser movido para a máquina de destino.
- Deve ser executado de forma remota no host

## Exemplos

```yaml
# Gerar um certificado OpenSSL autoassinado
  openssl_certificate:
    path: /etc/ssl/crt/atmosphere.com.crt
    privatekey_path: /etc/ssl/private/atmosphere.com.pem
    csr_path: /etc/ssl/csr/atmosphere.com.csr
    provider: selfsigned

# Gere um certificado OpenSSL assinado com seu próprio certificado CA
  openssl_certificate:
    path: /etc/ssl/crt/atmosphere.com.crt
    csr_path: /etc/ssl/csr/atmosphere.com.csr
    ownca_path: /etc/ssl/crt/atmosphere.crt
    ownca_privatekey_path: /etc/ssl/private/atmosphere_CA.pem
    provider: ownca

# Gerar um certificado Let's Encrypt
  openssl_certificate:
    path: /etc/ssl/crt/atmosphere.com.crt
    csr_path: /etc/ssl/csr/atmosphere.com.csr
    provider: acme
    acme_accountkey_path: /etc/ssl/private/atmosphere.com.pem
    acme_challenge_path: /etc/ssl/challenges/atmosphere.com/

# Forçar (re) gerar um novo certificado Let's Encrypt
  openssl_certificate:
    path: /etc/ssl/crt/atmosphere.com.crt
    csr_path: /etc/ssl/csr/atmosphere.com.csr
    provider: acme
    acme_accountkey_path: /etc/ssl/private/atmosphere.com.pem
    acme_challenge_path: /etc/ssl/challenges/atmosphere.com/
    force: yes

# Gerar um certificado Entrust por meio da API Entrust Certificate Services (ECS)
  openssl_certificate:
    path: /etc/ssl/crt/atmosphere.com.crt
    csr_path: /etc/ssl/csr/atmosphere.com.csr
    provider: entrust
    entrust_requester_name: Jo Doe
    entrust_requester_email: jdoe@atmosphere.com
    entrust_requester_phone: 555-555-5555
    entrust_cert_type: STANDARD_SSL
    entrust_api_user: apiusername
    entrust_api_key: a^lv*32!cd9LnT
    entrust_api_client_cert_path: /etc/ssl/entrust/ecs-client.crt
    entrust_api_client_cert_key_path: /etc/ssl/entrust/ecs-key.crt
    entrust_api_specification_path: /etc/ssl/entrust/api-docs/cms-api-2.1.0.yaml

# O exemplo a seguir mostra um uso assertonly usando todas as opções existentes para 
# assertonly e mostra como emular o comportamento com os módulos 
# openssl_certificate_info, openssl_csr_info, openssl_privatekey_info e assert:

- openssl_certificate:
    provider: assertonly
    path: /etc/ssl/crt/atmosphere.com.crt
    csr_path: /etc/ssl/csr/atmosphere.com.csr
    privatekey_path: /etc/ssl/csr/atmosphere.com.key
    signature_algorithms:
      - sha256WithRSAEncryption
      - sha512WithRSAEncryption
    subject:
      commonName: atmosphere.com
    subject_strict: yes
    issuer:
      commonName: atmosphere.com
    issuer_strict: yes
    has_expired: no
    version: 3
    key_usage:
      - Data Encipherment
    key_usage_strict: yes
    extended_key_usage:
      - DVCS
    extended_key_usage_strict: yes
    subject_alt_name:
      - dns:atmosphere.com
    subject_alt_name_strict: yes
    not_before: 20190331202428Z
    not_after: 20190413202428Z
    valid_at: "+1d10h"
    invalid_at: 20200331202428Z
    valid_in: 10  # in ten seconds

- openssl_certificate_info:
    path: /etc/ssl/crt/atmosphere.com.crt
    # para valid_at, invalid_at e valid_in
    valid_at:
      one_day_ten_hours: "+1d10h"
      fixed_timestamp: 20200331202428Z
      ten_seconds: "+10"
  register: result

- openssl_csr_info:
    # Verifica se a assinatura CSR é válida; o módulo irá falhar se não
    path: /etc/ssl/csr/atmosphere.com.csr
  register: result_csr

- openssl_privatekey_info:
    path: /etc/ssl/csr/atmosphere.com.key
  register: result_privatekey

- assert:
    that:
      # Quando a chave privada é especificada para assertonly, isso será verificado:
      - result.public_key == result_privatekey.public_key
      # Quando CSR é especificado para assertonly, isso será verificado:
      - result.public_key == result_csr.public_key
      - result.subject_ordered == result_csr.subject_ordered
      - result.extensions_by_oid == result_csr.extensions_by_oid
      # verificação de assinatura_algoritmos
      - "result.signature_algorithm == 'sha256WithRSAEncryption' or result.signature_algorithm == 'sha512WithRSAEncryption'"
      # assunto e subject_strict
      - "result.subject.commonName == 'atmosphere.com'"
      - "result.subject | length == 1"  # o número deve ser o número de entradas que você verifica
      # issuer e issuer_strict
      - "result.issuer.commonName == 'atmosphere.com'"
      - "result.issuer | length == 1"  # o número deve ser o número de entradas que você verifica
      # has_expired
      - not result.expired
      # versão
      - result.version == 3
      # key_usage e key_usage_strict
      - "'Data Encipherment' in result.key_usage"
      - "result.key_usage | length == 1"  # o número deve ser o número de entradas que você verifica
      # extended_key_usage e extended_key_usage_strict
      - "'DVCS' in result.extended_key_usage"
      - "result.extended_key_usage | length == 1"  # o número deve ser o número de entradas que você verifica
      # subject_alt_name e subject_alt_name_strict
      - "'dns:atmosphere.com' in result.subject_alt_name"
      - "result.subject_alt_name | length == 1"  # o número deve ser o número de entradas que você verifica
      # not_before e not_after
      - "result.not_before == '20190331202428Z'"
      - "result.not_after == '20190413202428Z'"
      # valid_at, invalid_at e valid_in
      - "result.valid_at.one_day_ten_hours"  # para valid_at
      - "not result.valid_at.fixed_timestamp"  # para invalid_at
      - "result.valid_at.ten_seconds"  # para valid_in

# Exemplos para algumas verificações que podem ser usadas para o provedor assertonly: 
# (observe que assertonly foi descontinuado!)

# Como usar o provedor assertonly para implementar e acionar seu próprio fluxo de 
# trabalho de geração de certificado personalizado: Verifique se um certificado ainda é válido, ignorando as falhas
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    has_expired: no
  ignore_errors: yes
  register: validity_check

# Execute tarefas personalizadas para obter um certificado novo e válido no caso de falha na verificação inicial
  command: superspecialSSL recreate /etc/ssl/crt/example.com.crt
  when: validity_check.failed

# Verifique a validade do novo certificado novamente com os mesmos parâmetros, desta vez falhando no jogo se ainda for inválido
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    has_expired: no
  when: validity_check.failed

# Algumas outras verificações que assertonly podem ser usadas para: 
# Verificar se um certificado existente foi emitido pelo Let's Encrypt CA e ainda é válido
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    issuer:
      O: Let's Encrypt
    has_expired: no

# Certifique-se de que um certificado usa um algoritmo de assinatura moderno (sem SHA1, MD5 ou DSA)
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    signature_algorithms:
      - sha224WithRSAEncryption
      - sha256WithRSAEncryption
      - sha384WithRSAEncryption
      - sha512WithRSAEncryption
      - sha224WithECDSAEncryption
      - sha256WithECDSAEncryption
      - sha384WithECDSAEncryption
      - sha512WithECDSAEncryption

# Certifique-se de que o certificado existente pertence à chave privada especificada
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    privatekey_path: /etc/ssl/private/example.com.pem
    provider: assertonly

# Certifique-se de que o certificado existente ainda é válido no solstício de inverno de 2017
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    valid_at: 20171221162800Z

# Certifique-se de que o certificado existente ainda é válido 2 semanas (1209600 segundos) a partir de agora
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    valid_in: 1209600

# Certifique-se de que o certificado existente é usado apenas para assinaturas digitais e criptografar outras chaves
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    key_usage:
      - digitalSignature
      - keyEncipherment
    key_usage_strict: true

# Certifique-se de que o certificado existente pode ser usado para autenticação de cliente
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    extended_key_usage:
      - clientAuth

# Certifique-se de que o certificado existente só pode ser usado para autenticação de cliente e carimbo de data / hora
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    extended_key_usage:
      - clientAuth
      - 1.3.6.1.5.5.7.3.8
    extended_key_usage_strict: true

# Certifique-se de que o certificado existente tenha um determinado domínio em seu subjectAltName
  openssl_certificate:
    path: /etc/ssl/crt/example.com.crt
    provider: assertonly
    subject_alt_name:
      - www.example.com
      - test.example.com
```

## Valores Retornados

| **Chave** | **Tipo** | **Retornado quando** | **Descrição**                     |
| --------- | -------- | -------------------- | --------------------------------- |
| filename  | string   | changed ou sucesso   | Caminho para o certificado gerado |



