

# Preparar certificados no AWS Certificate Manager
<a name="how-to-specify-certificate-for-custom-domain-name"></a>

Antes de configurar um nome de domínio personalizado para uma API, você deve ter um certificado SSL/TLS pronto no AWS Certificate Manager. Para obter mais informações, consulte o [Guia do usuário do AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/).

## Considerações
<a name="how-to-specify-certificate-for-custom-domain-name-considerations"></a>

Veja a seguir algumas considerações para o certificado SSL/TLS.
+ Se você criar um nome de domínio personalizado otimizado para borda, o API Gateway utilizará o CloudFront no suporte a certificados para nomes de domínio personalizados. Como tal, os requisitos e as restrições de um certificado SSL/TLS de nome de domínio personalizado são determinados pelo [CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html). Por exemplo, o tamanho máximo da chave pública é 2048, e o tamanho da chave privada pode ser de 1024, 2048 e 4096. O tamanho da chave pública é determinado pela autoridade de certificação que você utiliza. Peça à sua autoridade de certificação que retorne chaves de um tamanho diferente do comprimento padrão. Para obter mais informações, consulte [Acesso seguro aos seus objetos](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) e [Criar URLs e cookies assinados](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html).
+ Ao criar um nome de domínio personalizado regional, o tamanho máximo da chave pública deve ser 2048.
+ Para usar um certificado do ACM com um nome de domínio regional personalizado, é necessário solicitar ou importar o certificado na mesma região da API. O certificado deve cobrir o nome de domínio personalizado.
+  Para usar um certificado do ACM com um nome de domínio personalizado otimizado para borda, é necessário solicitar ou importar o certificado na região Leste dos EUA (N. da Virgínia): `us-east-1`.
+  É necessário ter um nome de domínio registrado, como `example.com`. Você pode usar o [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/) ou um registrador de domínios credenciado de terceiros. Para obter uma lista de registradores, consulte o [Diretório de registradores acreditados](https://www.icann.org/en/accredited-registrars) no site da ICANN. 

## Como criar ou importar um certificado SSL/TLS no ACM
<a name="how-to-specify-certificate-for-custom-domain-name-setup"></a>

Os procedimentos a seguir mostram como criar ou importar um certificado SSL/TLS para um nome de domínio.

------
#### [ To request a certificate provided by ACM for a domain name ]

1. Faça login no [console do AWS Certificate Manager](https://console.aws.amazon.com/acm).

1. Selecione **Request a certificate**.

1. Em **Tipo de certificado**, escolha **Solicitar um certificado público**.

1. Escolha **Próximo**.

1. Em **Nome de domínio totalmente qualificado**, insira um nome de domínio personalizado para a API, por exemplo `api.example.com`.

1. Opcionalmente, escolha **Add another name to this certificate**.

1. Em **Método de validação**, escolha um método para validar a propriedade do domínio.

1. Em **Algoritmo de chave**, escolha um algoritmo de criptografia.

1. Escolha **Solicitar**.

1. Para uma solicitação válida, um proprietário registrado do domínio da Internet deve concordar com a solicitação antes que o ACM emita o certificado. Se você usa o Route 53 para gerenciar registros de DNS públicos, pode atualizar os registros diretamente do console do ACM.

------
#### [ To import into ACM a certificate for a domain name ]

1.  Obtenha um certificado SSL/TLS codificado em PEM para seu nome de domínio personalizado de uma autoridade de certificação (CA). Consulte uma lista parcial dessas CAs em [Mozilla Included CA List](https://ccadb.my.salesforce-sites.com/mozilla/IncludedCACertificateReport). 

   1. Gere uma chave privada para o certificado e salve a saída em um arquivo usando o toolkit [OpenSSL](https://www.openssl.org) no site da OpenSSL:

      ```
      openssl genrsa -out private-key-file 2048
      ```

   1. Gere uma solicitação de assinatura de certificado (CSR) com a chave privada gerada anteriormente, usando o OpenSSL:

      ```
      openssl req -new -sha256 -key private-key-file -out CSR-file
      ```

   1. Envie a CSR para a autoridade de certificação e salve o certificado resultante.

   1. Baixe a cadeia de certificados da autoridade de certificação.
**nota**  
 Se você obtiver a chave privada de outra maneira e a chave estiver criptografada, poderá usar o seguinte comando para descriptografar a chave antes de enviá-la ao API Gateway para a configuração de um nome de domínio personalizado.   

   ```
   openssl pkcs8 -topk8 -inform pem -in MyEncryptedKey.pem -outform pem -nocrypt -out MyDecryptedKey.pem
   ```

1. Carregue o certificado para o AWS Certificate Manager:

   1. Faça login no [console do AWS Certificate Manager](https://console.aws.amazon.com/acm).

   1. Selecione **Importar um certificado**.

   1. Em **Corpo do certificado**, insira o corpo do certificado de servidor no formato PEM da autoridade de certificação. Veja a seguir um exemplo abreviado desse tipo de certificado.

      ```
      -----BEGIN CERTIFICATE-----
      EXAMPLECA+KgAwIBAgIQJ1XxJ8Pl++gOfQtj0IBoqDANBgkqhkiG9w0BAQUFADBB
      ...
      az8Cg1aicxLBQ7EaWIhhgEXAMPLE
      -----END CERTIFICATE-----
      ```

   1. Em **Chave privada do certificado**, insira a chave privada do certificado no formato PEM. Veja a seguir um exemplo abreviado desse tipo de chave. 

      ```
      -----BEGIN RSA PRIVATE KEY-----
      EXAMPLEBAAKCAQEA2Qb3LDHD7StY7Wj6U2/opV6Xu37qUCCkeDWhwpZMYJ9/nETO
      ...
      1qGvJ3u04vdnzaYN5WoyN5LFckrlA71+CszD1CGSqbVDWEXAMPLE
      -----END RSA PRIVATE KEY-----
      ```

   1. Em **Cadeia de certificados**, insira os certificados intermediários no formato PEM e, opcionalmente, o certificado raiz, um após o outro, sem linhas em branco. Se você incluir o certificado raiz, sua cadeia de certificados deverá começar com certificados intermediários e terminar com o certificado raiz. Use os certificados intermediários fornecidos pela sua autoridade de certificação. Não inclua intermediários que não estejam no caminho da cadeia de confiança. O seguinte mostra um exemplo abreviado. 

      ```
      -----BEGIN CERTIFICATE-----
      EXAMPLECA4ugAwIBAgIQWrYdrB5NogYUx1U9Pamy3DANBgkqhkiG9w0BAQUFADCB
      ...
      8/ifBlIK3se2e4/hEfcEejX/arxbx1BJCHBvlEPNnsdw8EXAMPLE
      -----END CERTIFICATE-----
      ```

      Aqui está outro exemplo.

      ```
      -----BEGIN CERTIFICATE-----
      Intermediate certificate 2
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      Intermediate certificate 1
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      Optional: Root certificate
      -----END CERTIFICATE-----
      ```

   1. Selecione **Próximo** e, depois, **Próximo**.

------

Depois que o certificado for criado ou importado com êxito, anote o ARN desse certificado. Você precisa dele ao configurar o nome de domínio personalizado.