---
title: OpenSSL CSR
slug: aiops-documentacao-tecnica/openssl-csr
docTags: 
createdAt: 2024-07-18T21:09:07.678Z
---

## Resumo

- Gerar solicitação de assinatura de certificado OpenSSL (CSR).

## Parâmetros

| **Parâmetro**                                                                                                     | **Tipo**               | **Escolhas \| Valor Padrão**                                              | **Comentários**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ----------------------------------------------------------------------------------------------------------------- | ---------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| authority\_cert\_issuer                                                                                           | list / elements=string |                                                                           | Nomes que estarão presentes no campo emissor do certificado de autoridade da solicitação de assinatura de certificado. <br /><br />Os valores devem ser prefixados por suas opções (ou seja, email, URI, DNS, RID, IP, dirName, otherName e os específicos para sua CA). <br /><br />Exemplo: DNS: ca.example.org. Se especificado, a *authority\_key\_identifier* também deve ser especificada. <br /><br />Observe que as CA's comerciais ignoram esse valor, respectivamente, use um valor de sua própria escolha.                                                                                        |
| authority\_cert\_serial\_number                                                                                   | integer                |                                                                           | O número de série do certificado de autoridade. Observe que isso só é compatível se o back-end de criptografia for usado! <br /><br />Observe que as CA's comerciais ignoram esse valor, respectivamente, usam um valor de sua própria escolha. <br /><br />O AuthorityKeyIdentifier só será adicionado se pelo menos um dos parâmetros authority\_key\_identifier, authority\_cert\_issuer e authority\_cert\_serial\_number for especificado.                                                                                                                                                              |
| authority\_key\_identifier                                                                                        | string                 |                                                                           | O identificador de chave de autoridade como uma string hexadecimal, em que dois bytes são separados por dois pontos. <br /><br />Exemplo: 00: 11: 22: 33: 44: 55: 66: 77: 88: 99: aa: bb: cc: dd: ee: ff: 00: 11: 22: 33. Se especificado, Authority\_cert\_issuer também deve ser especificado. <br /><br />Observe que as CA's comerciais ignoram esse valor e usam um valor de sua própria escolha, respectivamente. <br /><br />O AuthorityKeyIdentifier só será adicionado se pelo menos um dos authority\_key\_identifier, authority\_cert\_issuer e authority\_cert\_serial\_number for especificado. |
| backup                                                                                                            | boolean                | Escolhas:<br />- false<br />(default)<br />- true                         | Crie um arquivo de backup incluindo data / hora para que você possa obter o CSR original de volta se você o substituir por um novo acidentalmente.                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| basic\_constraints<br /><br /><br />aliases: basicConstraints                                                     | list / elements=string |                                                                           | Indica restrições básicas, como se o certificado for uma CA.<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| basic\_constraints\_critical<br /><br /><br />aliases: basicConstraints\_critical                                 | boolean                | Escolhas:<br />- false<br />(default)<br />- true                         | Se a extensão basicConstraints deve ser considerada crítica.<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| common\_name <br /><br /><br />aliases: CN, commonName                                                            | string                 |                                                                           | Campo de nome do assunto da solicitação de assinatura de certificado.<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| country\_name <br /><br /><br />aliases: C, countryName                                                           | string                 |                                                                           | Campo de nome do país do assunto da solicitação de assinatura do certificado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| create\_subject\_key\_identifier                                                                                  | boolean                | Escolhas:<br />- false<br />(default)<br />- true                         | Crie o Identificador de Chave do Assunto a partir da chave pública. Observe que as CA's comerciais podem ignorar o valor, em vez disso, use um valor de sua própria escolha. Especificar esta opção é mais útil para certificados autoassinados ou para próprios CA. Observe que isso só é suportado se o backend de cryptography for usado!                                                                                                                                                                                                                                                                 |
| digest                                                                                                            | string                 | "sha256"<br />(default)                                                   | O resumo usado ao assinar a solicitação de assinatura de certificado com a chave privada.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| email\_address <br /><br /><br />aliases: E, emailAddress                                                         | string                 |                                                                           | Campo de endereço de e-mail do assunto da solicitação de assinatura do certificado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| extended\_key\_usage <br /><br /><br />aliases: extKeyUsage, extendedKeyUsage                                     | list / elements=string |                                                                           | Restrições adicionais (por exemplo, autenticação de cliente, autenticação de servidor) nas finalidades permitidas para as quais a chave pública pode ser usada.                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| extended\_key\_usage\_critical<br /><br /><br />aliases: extKeyUsage\_critical, extendedKeyUsage\_critical        | boolean                | Escolhas:<br />- false<br />(default)<br />- true                         | Se a extensão extkeyUsage deve ser considerada crítica.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| force                                                                                                             | boolean                | Escolhas:<br />- false<br />(default)<br />- true                         | Se o pedido de assinatura de certificado deve ser gerado novamente forçado por este módulo atmosphere.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| key\_usage<br /><br />aliases: keyUsage                                                                           | list / elements=string |                                                                           | Isso define a finalidade (por exemplo, criptografia, assinatura, assinatura de certificado) da chave contida no certificado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| key\_usage\_critical<br /><br /><br />aliases: keyUsage\_critical                                                 | boolean                | Escolhas:<br />- false<br />(default)<br />- true                         | Se a extensão keyUsage deve ser considerada crítica.<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| locality\_name<br /><br />aliases: L, localityName                                                                | string                 |                                                                           | Campo localityName do assunto da solicitação de assinatura de certificado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ocsp\_must\_staple<br /><br /><br />aliases: ocspMustStaple                                                       | boolean                | Escolhas:<br />- false<br />(default)<br />- true                         | Indica que o certificado deve conter a extensão OCSP Must Staple (Veja: https\://tools.ietf.org/html/rfc7633).<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ocsp\_must\_staple\_critical<br /><br /><br /><br /><br /><br />aliases: ocspMustStaple\_critical                 | boolean                | Escolhas:<br />- false<br />(default)<br />- true                         | Se a extensão OCSP Must Staple deve ser considerada crítica. Observe que, de acordo com a RFC, essa extensão não deve ser marcada como crítica, pois os clientes antigos que não sabem sobre OCSP Must Staple são obrigados a rejeitar tais certificados (Veja: https\://tools.ietf.org/html/rfc7633#section-4).                                                                                                                                                                                                                                                                                             |
| organization\_name<br /><br />aliases: O, organizationName                                                        | string                 |                                                                           | Campo do nome da organização do assunto da solicitação de assinatura de certificado.<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| organizational\_unit\_name<br /><br />aliases: OU, organizationalUnitName                                         | string                 |                                                                           | Campo de nome da unidade organizacional do assunto da solicitação de assinatura de certificado.<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| path - *required*                                                                                                 | path                   |                                                                           | O nome do arquivo no qual a solicitação de assinatura de certificado OpenSSL gerada será gravada.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| privatekey\_passphrase                                                                                            | string                 |                                                                           | A frase secreta da chave privada. É necessária se a chave privada for protegida por senha.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| privatekey\_path                                                                                                  | path                   |                                                                           | O caminho para a chave privada a ser usada ao assinar a solicitação de assinatura de certificado. Privatekey\_path ou privatekey\_content deve ser especificado se state estiver present, mas não ambos.                                                                                                                                                                                                                                                                                                                                                                                                     |
| select\_crypto\_backend                                                                                           | string                 | Escolhas:<br />- auto<br />(default)<br />- cryptography<br />- pyopenssl | Determina qual back-end de criptografia usar. A escolha padrão é auto, que tenta usar cryptography, se disponível, e retorna para pyopenssl. Se definido como pyopenssl, tentará usar a biblioteca pyOpenSSL. Se definido como cryptography, tentará usar o biblioteca de criptografia.                                                                                                                                                                                                                                                                                                                      |
| state                                                                                                             | string                 | Escolhas:<br />- present<br />(default)<br />- absent                     | Se a solicitação de assinatura de certificado deve existir ou não, agir se o estado for diferente do que é declarado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| state\_or\_province\_name<br /><br />aliases: ST, stateOrProvinceName                                             | string                 |                                                                           | Campo stateOrProvinceName do assunto da solicitação de assinatura de certificado.<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| subject                                                                                                           | dictionary             |                                                                           | Pares de chave/valor que estarão presentes no campo de nome do assunto da solicitação de assinatura de certificado. Se você precisar especificar mais de um valor com a mesma chave, use uma lista como valor.                                                                                                                                                                                                                                                                                                                                                                                               |
| subject\_alt\_name<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />aliases: subjectAltName | list / elements=string |                                                                           | Extensão do nome alternativo do assunto (SAN) a ser anexada à solicitação de assinatura do certificado. Pode ser uma 'string separada por vírgulas' ou uma lista YAML. Os valores devem ser prefixados por suas opções. (ou seja, e-mail, URI, DNS, RID, IP, dirName, otherName e os específicos para sua CA). Observe que se nenhum SAN for especificado, mas um nome comum, o nome comum será adicionado como SAN, exceto se useCommonNameForSAN for definido como false. Veja mais em https\://tools.ietf.org/html/rfc5280#section-4.2.1.6.                                                               |
| subject\_alt\_name\_critical<br /><br />aliases: subjectAltName\_critical                                         | boolean                | Escolhas:<br />- false<br />(default)<br />- true                         | Se a extensão subjectAltName deve ser considerada crítica.<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| subject\_key\_identifier                                                                                          | string                 |                                                                           | O identificador de chave do assunto como uma string hexadecimal, em que dois bytes são separados por dois pontos. Exemplo: 00: 11: 22: 33: 44: 55: 66: 77: 88: 99: aa: bb: cc: dd: ee: ff : 00: 11: 22: 33. Observe que os CA's comerciais ignoram esse valor, respectivamente, usam um valor de sua própria escolha. Especificar esta opção é principalmente útil para certificados autoassinados ou para próprios CA's. Note que esta opção só pode ser usada se create\_subject\_key\_identifier for false. Isso só é suportado se o backend de criptografia for usado!                                   |
| use\_common\_name\_for\_san<br /><br />aliases: useCommonNameForSAN                                               | boolean                | Escolhas:<br />- false<br />- true<br />(default)                         | Se definido como true, o módulo preencherá o nome comum para subject\_alt\_name com 'DNS: prefix' se nenhum SAN for especificado.                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| version                                                                                                           | integer                | - 1<br />(default)                                                        | A versão da solicitação de assinatura de certificado. O único valor permitido de acordo com RFC 2986 é 1.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |

## Notas

- Para que você aproveite o máximo desse módulo, é necessário que o mesmo esteja funcionando em uma máquina remota ou host, que contenha os arquivos solicitados pelos parâmetros.

## Exemplos

```yaml
# Exemplo: Gerar uma solicitação de assinatura de certificado OpenSSL
- openssl_csr:
    path: /etc/ssl/csr/www.example.com.csr
    privatekey_path: /etc/ssl/private/example.com.pem
    common_name: www.example.com

# Exemplo: Gere uma solicitação de assinatura de certificado OpenSSL com uma chave privada protegida por senha
- openssl_csr:
    path: /etc/ssl/csr/www.example.com.csr
    privatekey_path: /etc/ssl/private/example.com.pem
    privatekey_passphrase: atmosphere
    common_name: www.example.com

# Exemplo: Gerar uma solicitação de assinatura de certificado OpenSSL com informações de assunto
- openssl_csr:
    path: /etc/ssl/csr/www.example.com.csr
    privatekey_path: /etc/ssl/private/example.com.pem
    country_name: FR
    organization_name: example
    email_address: jdoe@example.com
    common_name: www.example.com

# Exemplo: Gerar uma solicitação de assinatura de certificado OpenSSL com extensão subjectAltName
- openssl_csr:
    path: /etc/ssl/csr/www.example.com.csr
    privatekey_path: /etc/ssl/private/example.com.pem
    subject_alt_name: ['DNS:www.example.com', 'DNS:m.example.com']

# Exemplo: Gere um CSR OpenSSL com extensão subjectAltName com lista dinâmica
- openssl_csr:
    path: /etc/ssl/csr/www.example.com.csr
    privatekey_path: /etc/ssl/private/example.com.pem
    subject_alt_name: "{{ item.value | map('regex_replace', '^', 'DNS:') | list }}"
- with_dict:
    dns_server:
    - www.example.com
    - m.example.com

# Exemplo: Forçar a regeneração de uma solicitação de assinatura de certificado OpenSSL
- openssl_csr:
    path: /etc/ssl/csr/www.example.com.csr
    privatekey_path: /etc/ssl/private/example.com.pem
    force: yes
    common_name: www.example.com

# Exemplo: Gerar uma solicitação de assinatura de certificado OpenSSL com usos de chaves especiais
- openssl_csr:
    path: /etc/ssl/csr/www.example.com.csr
    privatekey_path: /etc/ssl/private/example.com.pem
    common_name: www.example.com
    key_usage:
      - digitalSignature
      - keyAgreement
    extended_key_usage:
      - clientAuth

# Exemplo: Gerar uma solicitação de assinatura de certificado OpenSSL com OCSP Must Stapler
- openssl_csr:
    path: /etc/ssl/csr/www.example.com.csr
    privatekey_path: /etc/ssl/private/example.com.pem
    common_name: www.example.com
    ocsp_must_staple: yes
```

## Valores retornados

| **Chave**           | **Tipo**               | **Retornado quando**              | **Descrição**                                                                                                                                      |
| ------------------- | ---------------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| backup\_file        | string                 | Modificar e se o backup for true. | Nome do arquivo de backup criado.                                                                                                                  |
| basicConstraints    | list / elements=string | Modificar ou der Sucesso          | Indica se o certificado pertence a uma CA.                                                                                                         |
| extendedKeyUsage    | list / elements=string | Modificar ou der Sucesso          | Restrições adicionais sobre os objetivos da chave pública.                                                                                         |
| filename            | string                 | Modificar ou der Sucesso          | Caminho para a solicitação de assinatura de certificado gerada.                                                                                    |
| keyUsage            | list / elements=string | Modificar ou der Sucesso          | Finalidade para a qual a chave pública pode ser usada.                                                                                             |
| ocsp\_must\_staple  | boolean                | Modificar ou der Sucesso          | Indica se o certificado tem o recurso OCSP deve grampear habilitado.<br />                                                                         |
| privatekey          | string                 | Modificar ou der Sucesso          | O caminho para a chave privada TLS / SSL para a qual o CSR foi gerado. Será nenhum se a chave privada tiver sido fornecida em privatekey\_content. |
| subject             |  list / elements=list  | Modificar ou der Sucesso          | Uma lista das tuplas de assunto anexadas ao CSR.                                                                                                   |
| subjectAltName      | list / elements=string | Modificar ou der Sucesso          | Os nomes alternativos para os quais este CSR é válido.                                                                                             |

