

# Proteger as APIs REST no API Gateway
<a name="rest-api-protect"></a>

O API Gateway fornece várias maneiras de proteger sua API de determinadas ameaças, como usuários mal-intencionados ou picos de tráfego. Você pode proteger a sua API usando estratégias, como gerar certificados SSL, configurar um firewall de aplicação Web, definir alvos de controle de utilização e permitir apenas o acesso à sua API de uma Virtual Private Cloud (VPC). Nesta seção, você pode aprender a habilitar esses recursos usando o API Gateway.

**Topics**
+ [Como ativar a autenticação do TLS mútuo para APIs REST no API Gateway](rest-api-mutual-tls.md)
+ [Gerar e configurar um certificado SSL para autenticação de backend no API Gateway](getting-started-client-side-ssl-authentication.md)
+ [Usar o AWS WAF para proteger as APIs REST no API Gateway](apigateway-control-access-aws-waf.md)
+ [Controle de utilização das solicitações das APIs REST para ter um melhor throughput no API Gateway](api-gateway-request-throttling.md)
+ [APIs REST privadas no API Gateway](apigateway-private-apis.md)

# Como ativar a autenticação do TLS mútuo para APIs REST no API Gateway
<a name="rest-api-mutual-tls"></a>

A autenticação TLS mútua requer autenticação bidirecional entre o cliente e o servidor. Com TLS mútuo, os clientes devem apresentar certificados X.509 para verificar sua identidade a fim de acessar sua API. O TLS mútuo é um requisito comum para a Internet das Coisas (IoT) e aplicações business-to-business. 

É possível usar o TLS mútuo juntamente com outras [operações de autorização e autenticação](apigateway-control-access-to-api.md) compatíveis com o API Gateway. O API Gateway encaminha os certificados que os clientes fornecem aos autorizadores do Lambda e às integrações de backend.

**Importante**  
Por padrão, os clientes podem invocar sua API usando o endpoint `execute-api` gerado pelo API Gateway para sua API. Para garantir que os clientes possam acessar sua API somente usando um nome de domínio personalizado com TLS mútuo, desabilite o endpoint `execute-api` padrão. Para saber mais, consulte [Desabilitar o endpoint padrão para APIs REST](rest-api-disable-default-endpoint.md). 

**Topics**
+ [Pré-requisitos do TLS mútuo](#rest-api-mutual-tls-prerequisites)
+ [Configurar o TLS mútuo para um nome de domínio personalizado](#rest-api-mutual-tls-configure)
+ [Invocar uma API usando um nome de domínio personalizado que requer TLS mútuo](#rest-api-mutual-tls-invoke)
+ [Atualizar o armazenamento de confiança](#rest-api-mutual-tls-update-truststore)
+ [Desativar o TLS mútuo](#rest-api-mutual-tls-disable)
+ [Solucionar problemas de TLS mútuo para a API REST](#rest-api-mutual-tls-troubleshooting)

## Pré-requisitos do TLS mútuo
<a name="rest-api-mutual-tls-prerequisites"></a>

Para configurar o TLS mútuo, você precisa de:
+ Um nome de domínio regional personalizado
+ Pelo menos um certificado configurado no AWS Certificate Manager para o seu nome de domínio personalizado
+ Um armazenamento de confiança configurado e carregado no Amazon S3

### Nomes de domínios personalizados
<a name="rest-api-mutual-tls-custom-domain-name"></a>

 Para habilitar o TLS mútuo para uma API REST, é necessário configurar um nome de domínio personalizado para sua API. Você pode habilitar o TLS mútuo para um nome de domínio personalizado e, depois, fornecer o nome de domínio personalizado aos clientes. Para acessar uma API usando um nome de domínio personalizado que tenha TLS mútuo habilitado, os clientes devem apresentar certificados confiáveis em solicitações de API. Você pode encontrar essas informações em [Nome de domínio personalizado para APIs REST públicas no API Gateway](how-to-custom-domains.md).

### Uso de certificados emitidos pelo AWS Certificate Manager
<a name="rest-api-mutual-tls-using-acm-issued-certs"></a>

É possível solicitar um certificado publicamente confiável diretamente do ACM ou importar certificados públicos ou autoassinados. Para configurar um certificado no ACM, acesse o [ACM](https://console.aws.amazon.com/acm/). Para importar um certificado, continue lendo na seção a seguir.

### Usar um certificado importado ou Autoridade de Certificação Privada da AWS
<a name="rest-api-mutual-tls-non-acm-certs"></a>

Para usar um certificado importado para o ACM ou um certificado do Autoridade de Certificação Privada da AWS com TLS mútuo, o API Gateway precisa de um `ownershipVerificationCertificate` emitido pela ACM. Esse certificado de propriedade é utilizado apenas para verificar você se tem permissões para utilizar o nome de domínio. Ele não é usado para o handshake TLS. Se você ainda não tem um `ownershipVerificationCertificate`, acesse [https://console.aws.amazon.com/acm/](https://console.aws.amazon.com/acm/) para configurar um.

Você precisará manter esse certificado válido durante todo o tempo de vida do seu nome de domínio. Se um certificado expirar e a renovação automática falhar, todas as atualizações do nome de domínio serão bloqueadas. Você precisará atualizar o `ownershipVerificationCertificateArn` com um `ownershipVerificationCertificate` válido antes de poder fazer outras alterações. O `ownershipVerificationCertificate` não pode ser usado como um certificado de servidor para outro domínio de TLS mútuo no API Gateway. Se um certificado for reimportado diretamente para o ACM, o emissor deverá permanecer o mesmo.

### Configuração do armazenamento de confiança
<a name="rest-api-mutual-tls-create-trust-store"></a>

Os armazenamentos de confiança são arquivos de texto com extensão `.pem`. Eles são uma lista confiável de certificados de autoridades de certificação. Para usar TLS mútuo, crie um armazenamento confiável de certificados X.509 que podem acessar sua API.

Você deve incluir a cadeia de confiança completa, começando pelo certificado da autoridade de certificação emissora até o certificado CA, em seu armazenamento de confiança. O API Gateway aceita certificados de cliente emitidos por qualquer autoridade de certificação presente na cadeia de confiança. Os certificados podem ser de autoridades de certificação públicas ou privadas. Eles podem ter um tamanho máximo de cadeia de quatro. Você também pode fornecer certificados autoassinados. Os seguintes algoritmos são aceitos no armazenamento de confiança:
+ SHA-256 ou mais forte
+ RSA-2048 ou mais forte
+ ECDSA-256 ou ECDSA-384

O API Gateway valida várias propriedades de certificado. É possível usar autorizadores do Lambda para executar verificações adicionais quando um cliente invoca uma API, incluindo verificar se um certificado foi revogado. O API Gateway valida as seguintes propriedades:


| Validação | Descrição | 
| --- | --- | 
|  Sintaxe X.509  |  O certificado deve atender aos requisitos da sintaxe X.509.  | 
|  Integridade  |  O conteúdo do certificado não pode ter sido alterado do assinado pela autoridade de certificação do armazenamento confiável.  | 
|  Validity  |  O período de validade do certificado deve ser atual.  | 
|  Encadeamento de nomes/encadeamento de chaves  |  Os nomes e os assuntos dos certificados devem formar uma cadeia ininterrupta. Eles podem ter um tamanho máximo de cadeia de quatro.  | 

### Fazer upload do armazenamento de confiança para um bucket do Amazon S3 em um único arquivo
<a name="w2aac15c20b7c11c13"></a>

Veja a seguir um exemplo da possível aparência de um arquivo .pem.

**Example certificates.pem**  

```
-----BEGIN CERTIFICATE-----
<Certificate contents>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<Certificate contents>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<Certificate contents>
-----END CERTIFICATE-----
...
```

O comando [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) da AWS CLI indicado abaixo carrega `certificates.pem` em seu bucket do Amazon S3.

```
aws s3 cp certificates.pem s3://bucket-name
```

## Configurar o TLS mútuo para um nome de domínio personalizado
<a name="rest-api-mutual-tls-configure"></a>

Para configurar o TLS mútuo para uma API REST, é necessário usar um nome de domínio personalizado regional para sua API, com uma política de segurança `TLS_1_2`. Para saber mais sobre como escolher uma política de segurança, consulte [Escolher uma política de segurança para o domínio personalizado no API Gateway](apigateway-custom-domain-tls-version.md).

**nota**  
O TLS mútuo não é suportado para APIs privadas.

Depois de fazer upload do armazenamento de confiança para o Amazon S3, você pode configurar o nome de domínio personalizado para usar TLS mútuo. O comando [create-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-domain-name.html) indicado abaixo cria um nome de domínio personalizado com TLS mútuo:

```
aws apigateway create-domain-name --region us-east-2 \
    --domain-name api.example.com \
    --regional-certificate-arn arn:aws:acm:us-east-2:123456789012:certificate/123456789012-1234-1234-1234-12345678 \
    --endpoint-configuration types=REGIONAL \
    --security-policy TLS_1_2 \
    --mutual-tls-authentication truststoreUri=s3://bucket-name/key-name
```

Depois de criar o nome de domínio, é necessário configurar registros DNS e mapeamentos de caminho base para operações da API. Para saber mais, consulte [Configurar um nome de domínio regional personalizado no API Gateway](apigateway-regional-api-custom-domain-create.md).

## Invocar uma API usando um nome de domínio personalizado que requer TLS mútuo
<a name="rest-api-mutual-tls-invoke"></a>

Para invocar uma API com TLS mútuo habilitado, os clientes precisam apresentar um certificado confiável na solicitação de API. Quando um cliente tenta invocar a API, o API Gateway procura o emissor do certificado de cliente no seu armazenamento de confiança. Para que o API Gateway prossiga com a solicitação, o emissor do certificado e a cadeia de confiança completa até o certificado CA raiz devem estar no seu armazenamento de confiança.

O comando `curl` demonstrativo a seguir envia uma solicitação para `api.example.com,` que inclui `my-cert.pem` na solicitação. `my-key.key` é a chave privada para o certificado.

```
curl -v --key ./my-key.key --cert ./my-cert.pem api.example.com
```

Sua API será invocada somente se o seu armazenamento de confiança confiar no certificado. As seguintes condições farão com que o API Gateway falhe no handshake TLS e negue a solicitação com um código de status `403`. Se seu certificado:
+ não é confiável
+ expirou
+ não usa um algoritmo compatível

**nota**  
O API Gateway não verifica se um certificado foi revogado.

## Atualizar o armazenamento de confiança
<a name="rest-api-mutual-tls-update-truststore"></a>

Para atualizar os certificados no armazenamento de confiança, faça upload de um novo pacote de certificados para o Amazon S3. Em seguida, você poderá atualizar o nome de domínio personalizado para usar o certificado atualizado.

Use o [Versionamento do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html) para manter várias versões do armazenamento de confiança. Quando o nome de domínio personalizado é atualizado para usar uma nova versão de armazenamento de confiança, o API Gateway exibirá avisos se os certificados forem inválidos.

O API Gateway produz avisos de certificado somente quando o nome de domínio é atualizado. O API Gateway não o notificará se um certificado carregado anteriormente expirar.

O comando [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) indicado abaixo atualiza um nome de domínio personalizado para usar uma nova versão do armazenamento de confiança:

```
aws apigateway update-domain-name \
    --domain-name api.example.com \
    --patch-operations op='replace',path='/mutualTlsAuthentication/truststoreVersion',value='abcdef123'
```

## Desativar o TLS mútuo
<a name="rest-api-mutual-tls-disable"></a>

O comando [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) indicado abaixo desabilita o TLS mútuo:

```
aws apigateway update-domain-name \
    --domain-name api.example.com \
    --patch-operations op='replace',path='/mutualTlsAuthentication/truststoreUri',value=''
```

## Solucionar problemas de TLS mútuo para a API REST
<a name="rest-api-mutual-tls-troubleshooting"></a>

O tópico a seguir fornece orientações para a solução de erros e problemas que você pode encontrar ao ativar o TLS mútuo.

### Solução de problemas de avisos de certificado
<a name="rest-api-mutual-tls-troubleshooting-certificate"></a>

 Ao criar um nome de domínio personalizado com TLS mútuo, o API Gateway exibirá avisos se os certificados no armazenamento de confiança não forem válidos. Isso também pode ocorrer ao atualizar um nome de domínio personalizado para usar um novo armazenamento de confiança. Os avisos indicam o problema com o certificado e o assunto que produziu o aviso. O TLS mútuo ainda está habilitado para sua API, mas alguns clientes podem não conseguir acessar a API.

Para identificar o certificado que produziu o aviso, é necessário decodificar os certificados em seu armazenamento de confiança. É possível usar ferramentas como `openssl` para decodificar os certificados e identificar os assuntos.

O comando a seguir exibe o conteúdo de um certificado, incluindo o assunto.

```
openssl x509 -in certificate.crt -text -noout
```

Atualize ou remova os certificados que produziram avisos e, depois, faça upload de um novo armazenamento de confiança para o Amazon S3. Após o upload do novo armazenamento de confiança, atualize o nome de domínio personalizado para usar o novo armazenamento de confiança.

### Solução de problemas de conflitos de nomes de domínios
<a name="w2aac15c20b7c21b7"></a>

O erro `"The certificate subject <certSubject> conflicts with an existing certificate from a different issuer."` significa que mais de uma autoridade de certificação emitiu um certificado para esse domínio. Para cada entidade no certificado, pode haver somente um emissor no API Gateway para domínios do TLS mútuos. Você precisará obter todos os seus certificados para esse assunto por meio de um único emissor. Se o problema for com um certificado sobre o qual você não tem controle, e você é capaz de provar que é o dono do nome de domínio, [entre em contato com Suporte](https://console.aws.amazon.com/support/cases#/create) para abrir um ticket.

### Solução de problemas de mensagens de status de nomes de domínio
<a name="w2aac15c20b7c21b9"></a>

`PENDING_CERTIFICATE_REIMPORT`: isso significa que você reimportou um certificado para o ACM e ele falhou na validação porque o novo certificado tem um SAN (nome alternativo de entidade) que não é coberto pelo `ownershipVerificationCertificate` ou o assunto ou os SANs no certificado não cobrem o nome de domínio. Algo pode estar configurado incorretamente ou um certificado inválido foi importado. Você precisa reimportar um certificado válido para o ACM. Para obter mais informações sobre a validação, consulte [Validação da propriedade de domínios](https://docs.aws.amazon.com/acm/latest/userguide/domain-ownership-validation.html).

`PENDING_OWNERSHIP_VERIFICATION`: isso significa que seu certificado verificado anteriormente expirou e o ACM não conseguiu renová-lo automaticamente. Você precisará renovar o certificado ou solicitar um novo certificado. Mais informações sobre renovação de certificados podem ser encontradas no guia [Solução de problemas de renovação de certificados gerenciados do ACM](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-renewal.html).

### Solucionar problemas de certificado incorreto devolvido
<a name="w2aac15c20b7c21c11"></a>

Ao migrar um certificado dedicado de um nome de domínio totalmente qualificado (FQDN) para um nome de domínio de cliente curinga, o API Gateway pode retornar o certificado para o FQDN em vez do nome de domínio curinga.

O comando a seguir mostra qual certificado está sendo retornado pelo API Gateway:

```
openssl s_client -connect hostname:port
```

Se o certificado resultante for para o FQDN, [entre em contato com o Suporte](https://console.aws.amazon.com/support/cases#/create) para abrir um tíquete.

# Gerar e configurar um certificado SSL para autenticação de backend no API Gateway
<a name="getting-started-client-side-ssl-authentication"></a>

 É possível usar o API Gateway para gerar um certificado SSL e, depois, usar sua chave pública no backend para verificar se as solicitações HTTP para seu sistema backend são provenientes do API Gateway. Isso permite que o backend HTTP controle e aceite apenas solicitações provenientes do Amazon API Gateway, mesmo que o backend esteja acessível ao público. 

**nota**  
 Alguns servidores de backend podem não ser compatíveis com a autenticação de cliente SSL como o API Gateway e retornar um erro de certificado SSL. Para obter uma lista de servidores de backend incompatíveis, consulte [Notas importantes do Amazon API Gateway](api-gateway-known-issues.md). 

 Os certificados SSL gerados pelo API Gateway são autoassinados, e somente a chave pública de um certificado é visível no console do API Gateway ou por meio das APIs. 

**Topics**
+ [Gerar um certificado de cliente usando o console do API Gateway](#generate-client-certificate)
+ [Configurar uma API para usar certificados SSL](#configure-api)
+ [Testar chamada para verificar a configuração de certificado do cliente](#test-invoke)
+ [Configurar um servidor HTTPS de backend para verificar o certificado do cliente](#certificate-validation)
+ [Girar um certificado de cliente prestes a expirar](#certificate-rotation)
+ [Autoridades de certificado compatíveis com o API Gateway para integrações HTTP e de proxy HTTP no API Gateway.](api-gateway-supported-certificate-authorities-for-http-endpoints.md)

## Gerar um certificado de cliente usando o console do API Gateway
<a name="generate-client-certificate"></a>

1. Abra o console do API Gateway em [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Escolha uma API REST ou uma API de WebSocket.

1. No painel de navegação principal, selecione **Certificados do cliente**.

1. No painel **Certificados do cliente**, escolha **Gerar certificado**.

1.  (Opcional) Em **Description (Descrição)**, insira uma descrição. 

1. Selecione **Gerar certificado** para gerar o certificado. O API Gateway gera um novo certificado e retorna o novo GUID de certificado, juntamente com a chave pública codificada em PEM. 

Agora, você está pronto para configurar uma API para usar o certificado.

## Configurar uma API para usar certificados SSL
<a name="configure-api"></a>

Essas instruções pressupõem que você já tenha concluído o [Gerar um certificado de cliente usando o console do API Gateway](#generate-client-certificate).

1.  No console do API Gateway, crie ou abra uma API REST ou uma API de WebSocket para a qual você deseja usar o certificado de cliente. Certifique-se de que a API tenha sido implantada em um estágio. 

1. No painel de navegação principal, selecione **Estágios**.

1. Na seção **Detalhes do estágio**, selecione **Editar**.

1. Em **Certificado do cliente**, selecione um certificado.

1. Escolha **Salvar alterações**.

Depois que um certificado for selecionado para a API e salvo, o API Gateway usará esse certificado para todas as chamadas para integrações HTTP em sua API. 

## Testar chamada para verificar a configuração de certificado do cliente
<a name="test-invoke"></a>

1. Escolha um método de API REST. Selecione a guia **Testar**. Talvez seja necessário escolher o botão de seta para a direita para mostrar a guia **Testar**.

1. Em **Certificado do cliente**, selecione um certificado. 

1. Escolha **Testar**. 

 O API Gateway apresenta o certificado SSL escolhido para que o backend HTTP autentique a API. 

## Configurar um servidor HTTPS de backend para verificar o certificado do cliente
<a name="certificate-validation"></a>

Estas instruções pressupõem que você já tenha concluído o [Gerar um certificado de cliente usando o console do API Gateway](#generate-client-certificate) e feito download de uma cópia do certificado do cliente. Você pode baixar um certificado de cliente chamando [https://docs.aws.amazon.com/apigateway/latest/api/API_GetClientCertificate.html](https://docs.aws.amazon.com/apigateway/latest/api/API_GetClientCertificate.html) da API REST do API Gateway ou [https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-client-certificate.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-client-certificate.html) da AWS CLI. 

 Antes de configurar um servidor HTTPS de backend para verificar o certificado SSL do cliente do API Gateway, é necessário ter obtido a chave privada codificada por PEM e um certificado de servidor fornecido por uma autoridade de certificação confiável. 

Se o nome de domínio do servidor for `myserver.mydomain.com`, o valor CNAME do certificado do servidor deverá ser `myserver.mydomain.com` ou `*.mydomain.com`. 

Entre as autoridades de certificação aceitas estão [Let's Encrypt](https://letsencrypt.org/) ou um dos [Autoridades de certificado compatíveis com o API Gateway para integrações HTTP e de proxy HTTP no API Gateway.](api-gateway-supported-certificate-authorities-for-http-endpoints.md). 

Como exemplo, suponha que o arquivo de certificado do cliente é `apig-cert.pem` e que a chave privada do servidor e os arquivos de certificado são `server-key.pem` e `server-cert.pem`, respectivamente. Para um servidor Node.js no backend, você pode configurar o servidor de forma semelhante à seguinte:

```
var fs = require('fs'); 
var https = require('https');
var options = { 
    key: fs.readFileSync('server-key.pem'), 
    cert: fs.readFileSync('server-cert.pem'), 
    ca: fs.readFileSync('apig-cert.pem'), 
    requestCert: true, 
    rejectUnauthorized: true
};
https.createServer(options, function (req, res) { 
    res.writeHead(200); 
    res.end("hello world\n"); 
}).listen(443);
```



Para um aplicativo node-[express](http://expressjs.com/), você pode usar os módulos [client-certificate-auth](https://www.npmjs.com/package/client-certificate-auth) para autenticar solicitações de clientes com certificados codificados em PEM. 

Para outros servidores HTTPS, consulte a documentação do servidor.

## Girar um certificado de cliente prestes a expirar
<a name="certificate-rotation"></a>

O certificado do cliente gerado pelo API Gateway é válido por 365 dias. Você deve girar o certificado antes que um certificado de cliente em um estágio de API expire, para evitar o tempo de inatividade da API.

### Alternar um certificado de cliente prestes a expirar usando o Console de gerenciamento da AWS
<a name="certification-rotation-console"></a>

O procedimento a seguir mostra como alternar um certificado de cliente no console para uma API implantada anteriormente.

1. No painel de navegação principal, selecione **Certificados do cliente**.

1. No painel **Certificados do cliente**, selecione **Gerar certificado**.

1.  Abra a API para a qual você deseja usar o certificado do cliente. 

1. Escolha **Stages (Estágios)** na API selecionada e selecione um estágio.

1. Na seção **Detalhes do estágio**, selecione **Editar**.

1. Em **Certificado do cliente**, selecione o novo certificado.

1. Para salvar as configurações, selecione **Salvar alterações**.

### Alternar um certificado de cliente prestes a expirar usando o AWS CLI
<a name="certificate-rotation-cli"></a>

 Você pode verificar a data de validade do certificado chamando o [clientCertificate:by-id](https://docs.aws.amazon.com/apigateway/latest/api/API_GetClientCertificate.html) da API REST do API Gateway ou o comando da AWS CLI [get-client-certificate](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-client-certificate.html) e inspecionando a propriedade [expirationDate](https://docs.aws.amazon.com/apigateway/latest/api/API_ClientCertificate.html#expirationDate)retornada.

Para alternar um certificado de cliente, faça o seguinte:

1. Para gerar um certificado de cliente, chame [clientcertificate:generate](https://docs.aws.amazon.com/apigateway/latest/api/API_GenerateClientCertificate.html) da API REST do API Gateway ou o comando da AWS CLI de [generate-client-certificate](https://docs.aws.amazon.com/cli/latest/reference/apigateway/generate-client-certificate.html). Neste tutorial, pressupomos que o novo ID de certificado do cliente é `ndiqef`.

1.  Atualize o servidor de backend para incluir o novo certificado do cliente. Não remova o certificado de cliente existente ainda.

   Alguns servidores podem exigir uma reinicialização para concluir a atualização. Consulte a documentação do servidor para ver se você deve reiniciá-lo durante a atualização.

1.  Para atualizar o estágio da API para usar o novo certificado do cliente, chame [stage: update](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) da API REST do API Gateway, com o novo ID de certificado do cliente (`ndiqef`):

   ```
   PATCH /restapis/{restapi-id}/stages/stage1 HTTP/1.1
   Content-Type: application/json
   Host: apigateway.us-east-1.amazonaws.com
   X-Amz-Date: 20170603T200400Z
   Authorization: AWS4-HMAC-SHA256 Credential=...
   
   {
     "patchOperations" : [
       {
           "op" : "replace",
           "path" : "/clientCertificateId",
           "value" : "ndiqef"
       }
     ]
   }
   ```

   Também é possível usar o comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html).

   Se você estiver utilizando uma API de WebSocket, use o comando `apigatewayv2` [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-stage.html).

1.  Atualize o servidor de backend para remover o certificado antigo.

1.  Para excluir o certificado antigo do API Gateway, chame [clientcertificate:delete](https://docs.aws.amazon.com/apigateway/latest/api/API_DeleteClientCertificate.html) da API REST do API Gateway, especificando o clientCertificateId (`a1b2c3`) do certificado antigo:

   ```
   DELETE /clientcertificates/a1b2c3 
   ```

   Também é possível chamar o comando [delete-client-certificate](https://docs.aws.amazon.com/cli/latest/reference/apigateway/delete-client-certificate.html):

   ```
   aws apigateway delete-client-certificate --client-certificate-id a1b2c3
   ```

# Autoridades de certificado compatíveis com o API Gateway para integrações HTTP e de proxy HTTP no API Gateway.
<a name="api-gateway-supported-certificate-authorities-for-http-endpoints"></a>

 A lista a seguir mostra as autoridades de certificação compatíveis com o API Gateway para integrações HTTP, de proxy HTTP e privadas. 

```
Alias name: accvraiz1
	 SHA1: 93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17
	 SHA256: 9A:6E:C0:12:E1:A7:DA:9D:BE:34:19:4D:47:8A:D7:C0:DB:18:22:FB:07:1D:F1:29:81:49:6E:D1:04:38:41:13
Alias name: acraizfnmtrcm
	 SHA1: EC:50:35:07:B2:15:C4:95:62:19:E2:A8:9A:5B:42:99:2C:4C:2C:20
	 SHA256: EB:C5:57:0C:29:01:8C:4D:67:B1:AA:12:7B:AF:12:F7:03:B4:61:1E:BC:17:B7:DA:B5:57:38:94:17:9B:93:FA
Alias name: actalis
	 SHA1: F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC
	 SHA256: 55:92:60:84:EC:96:3A:64:B9:6E:2A:BE:01:CE:0B:A8:6A:64:FB:FE:BC:C7:AA:B5:AF:C1:55:B3:7F:D7:60:66
Alias name: actalisauthenticationrootca
	 SHA1: F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC
	 SHA256: 55:92:60:84:EC:96:3A:64:B9:6E:2A:BE:01:CE:0B:A8:6A:64:FB:FE:BC:C7:AA:B5:AF:C1:55:B3:7F:D7:60:66
Alias name: addtrustclass1ca
	 SHA1: CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D
	 SHA256: 8C:72:09:27:9A:C0:4E:27:5E:16:D0:7F:D3:B7:75:E8:01:54:B5:96:80:46:E3:1F:52:DD:25:76:63:24:E9:A7
Alias name: addtrustexternalca
	 SHA1: 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68
	 SHA256: 68:7F:A4:51:38:22:78:FF:F0:C8:B1:1F:8D:43:D5:76:67:1C:6E:B2:BC:EA:B4:13:FB:83:D9:65:D0:6D:2F:F2
Alias name: addtrustqualifiedca
	 SHA1: 4D:23:78:EC:91:95:39:B5:00:7F:75:8F:03:3B:21:1E:C5:4D:8B:CF
	 SHA256: 80:95:21:08:05:DB:4B:BC:35:5E:44:28:D8:FD:6E:C2:CD:E3:AB:5F:B9:7A:99:42:98:8E:B8:F4:DC:D0:60:16
Alias name: affirmtrustcommercial
	 SHA1: F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7
	 SHA256: 03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7
Alias name: affirmtrustcommercialca
	 SHA1: F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7
	 SHA256: 03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7
Alias name: affirmtrustnetworking
	 SHA1: 29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F
	 SHA256: 0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0:B4:1B
Alias name: affirmtrustnetworkingca
	 SHA1: 29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F
	 SHA256: 0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0:B4:1B
Alias name: affirmtrustpremium
	 SHA1: D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27
	 SHA256: 70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
Alias name: affirmtrustpremiumca
	 SHA1: D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27
	 SHA256: 70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
Alias name: affirmtrustpremiumecc
	 SHA1: B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BB
	 SHA256: BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23
Alias name: affirmtrustpremiumeccca
	 SHA1: B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BB
	 SHA256: BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23
Alias name: amazon-ca-g4-acm1
	 SHA1: F2:0D:28:B6:29:C2:2C:5E:84:05:E6:02:4D:97:FE:8F:A0:84:93:A0
	 SHA256: B0:11:A4:F7:29:6C:74:D8:2B:F5:62:DF:87:D7:28:C7:1F:B5:8C:F4:E6:73:F2:78:FC:DA:F3:FF:83:A6:8C:87
Alias name: amazon-ca-g4-acm2
	 SHA1: A7:E6:45:32:1F:7A:B7:AD:C0:70:EA:73:5F:AB:ED:C3:DA:B4:D0:C8
	 SHA256: D7:A8:7C:69:95:D0:E2:04:2A:32:70:A7:E2:87:FE:A7:E8:F4:C1:70:62:F7:90:C3:EB:BB:53:F2:AC:39:26:BE
Alias name: amazon-ca-g4-acm3
	 SHA1: 7A:DB:56:57:5F:D6:EE:67:85:0A:64:BB:1C:E9:E4:B0:9A:DB:9D:07
	 SHA256: 6B:EB:9D:20:2E:C2:00:70:BD:D2:5E:D3:C0:C8:33:2C:B4:78:07:C5:82:94:4E:7E:23:28:22:71:A4:8E:0E:C2
Alias name: amazon-ca-g4-legacy
	 SHA1: EA:E7:DE:F9:0A:BE:9F:0B:68:CE:B7:24:0D:80:74:03:BF:6E:B1:6E
	 SHA256: CD:72:C4:7F:B4:AD:28:A4:67:2B:E1:86:47:D4:40:E9:3B:16:2D:95:DB:3C:2F:94:BB:81:D9:09:F7:91:24:5E
Alias name: amazon-root-ca-ecc-384-1
	 SHA1: F9:5E:4A:AB:9C:2D:57:61:63:3D:B2:57:B4:0F:24:9E:7B:E2:23:7D
	 SHA256: C6:BD:E5:66:C2:72:2A:0E:96:E9:C1:2C:BF:38:92:D9:55:4D:29:03:57:30:72:40:7F:4E:70:17:3B:3C:9B:63
Alias name: amazon-root-ca-rsa-2k-1
	 SHA1: 8A:9A:AC:27:FC:86:D4:50:23:AD:D5:63:F9:1E:AE:2C:AF:63:08:6C
	 SHA256: 0F:8F:33:83:FB:70:02:89:49:24:E1:AA:B0:D7:FB:5A:BF:98:DF:75:8E:0F:FE:61:86:92:BC:F0:75:35:CC:80
Alias name: amazon-root-ca-rsa-4k-1
	 SHA1: EC:BD:09:61:F5:7A:B6:A8:76:BB:20:8F:14:05:ED:7E:70:ED:39:45
	 SHA256: 36:AE:AD:C2:6A:60:07:90:6B:83:A3:73:2D:D1:2B:D4:00:5E:C7:F2:76:11:99:A9:D4:DA:63:2F:59:B2:8B:CF
Alias name: amazon1
	 SHA1: 8D:A7:F9:65:EC:5E:FC:37:91:0F:1C:6E:59:FD:C1:CC:6A:6E:DE:16
	 SHA256: 8E:CD:E6:88:4F:3D:87:B1:12:5B:A3:1A:C3:FC:B1:3D:70:16:DE:7F:57:CC:90:4F:E1:CB:97:C6:AE:98:19:6E
Alias name: amazon2
	 SHA1: 5A:8C:EF:45:D7:A6:98:59:76:7A:8C:8B:44:96:B5:78:CF:47:4B:1A
	 SHA256: 1B:A5:B2:AA:8C:65:40:1A:82:96:01:18:F8:0B:EC:4F:62:30:4D:83:CE:C4:71:3A:19:C3:9C:01:1E:A4:6D:B4
Alias name: amazon3
	 SHA1: 0D:44:DD:8C:3C:8C:1A:1A:58:75:64:81:E9:0F:2E:2A:FF:B3:D2:6E
	 SHA256: 18:CE:6C:FE:7B:F1:4E:60:B2:E3:47:B8:DF:E8:68:CB:31:D0:2E:BB:3A:DA:27:15:69:F5:03:43:B4:6D:B3:A4
Alias name: amazon4
	 SHA1: F6:10:84:07:D6:F8:BB:67:98:0C:C2:E2:44:C2:EB:AE:1C:EF:63:BE
	 SHA256: E3:5D:28:41:9E:D0:20:25:CF:A6:90:38:CD:62:39:62:45:8D:A5:C6:95:FB:DE:A3:C2:2B:0B:FB:25:89:70:92
Alias name: amazonrootca1
	 SHA1: 8D:A7:F9:65:EC:5E:FC:37:91:0F:1C:6E:59:FD:C1:CC:6A:6E:DE:16
	 SHA256: 8E:CD:E6:88:4F:3D:87:B1:12:5B:A3:1A:C3:FC:B1:3D:70:16:DE:7F:57:CC:90:4F:E1:CB:97:C6:AE:98:19:6E
Alias name: amazonrootca2
	 SHA1: 5A:8C:EF:45:D7:A6:98:59:76:7A:8C:8B:44:96:B5:78:CF:47:4B:1A
	 SHA256: 1B:A5:B2:AA:8C:65:40:1A:82:96:01:18:F8:0B:EC:4F:62:30:4D:83:CE:C4:71:3A:19:C3:9C:01:1E:A4:6D:B4
Alias name: amazonrootca3
	 SHA1: 0D:44:DD:8C:3C:8C:1A:1A:58:75:64:81:E9:0F:2E:2A:FF:B3:D2:6E
	 SHA256: 18:CE:6C:FE:7B:F1:4E:60:B2:E3:47:B8:DF:E8:68:CB:31:D0:2E:BB:3A:DA:27:15:69:F5:03:43:B4:6D:B3:A4
Alias name: amazonrootca4
	 SHA1: F6:10:84:07:D6:F8:BB:67:98:0C:C2:E2:44:C2:EB:AE:1C:EF:63:BE
	 SHA256: E3:5D:28:41:9E:D0:20:25:CF:A6:90:38:CD:62:39:62:45:8D:A5:C6:95:FB:DE:A3:C2:2B:0B:FB:25:89:70:92
Alias name: amzninternalinfoseccag3
	 SHA1: B9:B1:CA:38:F7:BF:9C:D2:D4:95:E7:B6:5E:75:32:9B:A8:78:2E:F6
	 SHA256: 81:03:0B:C7:E2:54:DA:7B:F8:B7:45:DB:DD:41:15:89:B5:A3:81:86:FB:4B:29:77:1F:84:0A:18:D9:67:6D:68
Alias name: amzninternalrootca
	 SHA1: A7:B7:F6:15:8A:FF:1E:C8:85:13:38:BC:93:EB:A2:AB:A4:09:EF:06
	 SHA256: 0E:DE:63:C1:DC:7A:8E:11:F1:AB:BC:05:4F:59:EE:49:9D:62:9A:2F:DE:9C:A7:16:32:A2:64:29:3E:8B:66:AA
Alias name: aolrootca1
	 SHA1: 39:21:C1:15:C1:5D:0E:CA:5C:CB:5B:C4:F0:7D:21:D8:05:0B:56:6A
	 SHA256: 77:40:73:12:C6:3A:15:3D:5B:C0:0B:4E:51:75:9C:DF:DA:C2:37:DC:2A:33:B6:79:46:E9:8E:9B:FA:68:0A:E3
Alias name: aolrootca2
	 SHA1: 85:B5:FF:67:9B:0C:79:96:1F:C8:6E:44:22:00:46:13:DB:17:92:84
	 SHA256: 7D:3B:46:5A:60:14:E5:26:C0:AF:FC:EE:21:27:D2:31:17:27:AD:81:1C:26:84:2D:00:6A:F3:73:06:CC:80:BD
Alias name: atostrustedroot2011
	 SHA1: 2B:B1:F5:3E:55:0C:1D:C5:F1:D4:E6:B7:6A:46:4B:55:06:02:AC:21
	 SHA256: F3:56:BE:A2:44:B7:A9:1E:B3:5D:53:CA:9A:D7:86:4A:CE:01:8E:2D:35:D5:F8:F9:6D:DF:68:A6:F4:1A:A4:74
Alias name: autoridaddecertificacionfirmaprofesionalcifa62634068
	 SHA1: AE:C5:FB:3F:C8:E1:BF:C4:E5:4F:03:07:5A:9A:E8:00:B7:F7:B6:FA
	 SHA256: 04:04:80:28:BF:1F:28:64:D4:8F:9A:D4:D8:32:94:36:6A:82:88:56:55:3F:3B:14:30:3F:90:14:7F:5D:40:EF
Alias name: baltimorecodesigningca
	 SHA1: 30:46:D8:C8:88:FF:69:30:C3:4A:FC:CD:49:27:08:7C:60:56:7B:0D
	 SHA256: A9:15:45:DB:D2:E1:9C:4C:CD:F9:09:AA:71:90:0D:18:C7:35:1C:89:B3:15:F0:F1:3D:05:C1:3A:8F:FB:46:87
Alias name: baltimorecybertrustca
	 SHA1: D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74
	 SHA256: 16:AF:57:A9:F6:76:B0:AB:12:60:95:AA:5E:BA:DE:F2:2A:B3:11:19:D6:44:AC:95:CD:4B:93:DB:F3:F2:6A:EB
Alias name: baltimorecybertrustroot
	 SHA1: D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74
	 SHA256: 16:AF:57:A9:F6:76:B0:AB:12:60:95:AA:5E:BA:DE:F2:2A:B3:11:19:D6:44:AC:95:CD:4B:93:DB:F3:F2:6A:EB
Alias name: buypassclass2ca
	 SHA1: 49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99
	 SHA256: 9A:11:40:25:19:7C:5B:B9:5D:94:E6:3D:55:CD:43:79:08:47:B6:46:B2:3C:DF:11:AD:A4:A0:0E:FF:15:FB:48
Alias name: buypassclass2rootca
	 SHA1: 49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99
	 SHA256: 9A:11:40:25:19:7C:5B:B9:5D:94:E6:3D:55:CD:43:79:08:47:B6:46:B2:3C:DF:11:AD:A4:A0:0E:FF:15:FB:48
Alias name: buypassclass3ca
	 SHA1: DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57
	 SHA256: ED:F7:EB:BC:A2:7A:2A:38:4D:38:7B:7D:40:10:C6:66:E2:ED:B4:84:3E:4C:29:B4:AE:1D:5B:93:32:E6:B2:4D
Alias name: buypassclass3rootca
	 SHA1: DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57
	 SHA256: ED:F7:EB:BC:A2:7A:2A:38:4D:38:7B:7D:40:10:C6:66:E2:ED:B4:84:3E:4C:29:B4:AE:1D:5B:93:32:E6:B2:4D
Alias name: cadisigrootr2
	 SHA1: B5:61:EB:EA:A4:DE:E4:25:4B:69:1A:98:A5:57:47:C2:34:C7:D9:71
	 SHA256: E2:3D:4A:03:6D:7B:70:E9:F5:95:B1:42:20:79:D2:B9:1E:DF:BB:1F:B6:51:A0:63:3E:AA:8A:9D:C5:F8:07:03
Alias name: camerfirmachambersca
	 SHA1: 78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C
	 SHA256: 06:3E:4A:FA:C4:91:DF:D3:32:F3:08:9B:85:42:E9:46:17:D8:93:D7:FE:94:4E:10:A7:93:7E:E2:9D:96:93:C0
Alias name: camerfirmachamberscommerceca
	 SHA1: 6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1
	 SHA256: 0C:25:8A:12:A5:67:4A:EF:25:F2:8B:A7:DC:FA:EC:EE:A3:48:E5:41:E6:F5:CC:4E:E6:3B:71:B3:61:60:6A:C3
Alias name: camerfirmachambersignca
	 SHA1: 4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C
	 SHA256: 13:63:35:43:93:34:A7:69:80:16:A0:D3:24:DE:72:28:4E:07:9D:7B:52:20:BB:8F:BD:74:78:16:EE:BE:BA:CA
Alias name: certigna
	 SHA1: B1:2E:13:63:45:86:A4:6F:1A:B2:60:68:37:58:2D:C4:AC:FD:94:97
	 SHA256: E3:B6:A2:DB:2E:D7:CE:48:84:2F:7A:C5:32:41:C7:B7:1D:54:14:4B:FB:40:C1:1F:3F:1D:0B:42:F5:EE:A1:2D
Alias name: certignarootca
	 SHA1: 2D:0D:52:14:FF:9E:AD:99:24:01:74:20:47:6E:6C:85:27:27:F5:43
	 SHA256: D4:8D:3D:23:EE:DB:50:A4:59:E5:51:97:60:1C:27:77:4B:9D:7B:18:C9:4D:5A:05:95:11:A1:02:50:B9:31:68
Alias name: certplusclass2primaryca
	 SHA1: 74:20:74:41:72:9C:DD:92:EC:79:31:D8:23:10:8D:C2:81:92:E2:BB
	 SHA256: 0F:99:3C:8A:EF:97:BA:AF:56:87:14:0E:D5:9A:D1:82:1B:B4:AF:AC:F0:AA:9A:58:B5:D5:7A:33:8A:3A:FB:CB
Alias name: certplusclass3pprimaryca
	 SHA1: 21:6B:2A:29:E6:2A:00:CE:82:01:46:D8:24:41:41:B9:25:11:B2:79
	 SHA256: CC:C8:94:89:37:1B:AD:11:1C:90:61:9B:EA:24:0A:2E:6D:AD:D9:9F:9F:6E:1D:4D:41:E5:8E:D6:DE:3D:02:85
Alias name: certsignrootca
	 SHA1: FA:B7:EE:36:97:26:62:FB:2D:B0:2A:F6:BF:03:FD:E8:7C:4B:2F:9B
	 SHA256: EA:A9:62:C4:FA:4A:6B:AF:EB:E4:15:19:6D:35:1C:CD:88:8D:4F:53:F3:FA:8A:E6:D7:C4:66:A9:4E:60:42:BB
Alias name: certsignrootcag2
	 SHA1: 26:F9:93:B4:ED:3D:28:27:B0:B9:4B:A7:E9:15:1D:A3:8D:92:E5:32
	 SHA256: 65:7C:FE:2F:A7:3F:AA:38:46:25:71:F3:32:A2:36:3A:46:FC:E7:02:09:51:71:07:02:CD:FB:B6:EE:DA:33:05
Alias name: certum2
	 SHA1: D3:DD:48:3E:2B:BF:4C:05:E8:AF:10:F5:FA:76:26:CF:D3:DC:30:92
	 SHA256: B6:76:F2:ED:DA:E8:77:5C:D3:6C:B0:F6:3C:D1:D4:60:39:61:F4:9E:62:65:BA:01:3A:2F:03:07:B6:D0:B8:04
Alias name: certumca
	 SHA1: 62:52:DC:40:F7:11:43:A2:2F:DE:9E:F7:34:8E:06:42:51:B1:81:18
	 SHA256: D8:E0:FE:BC:1D:B2:E3:8D:00:94:0F:37:D2:7D:41:34:4D:99:3E:73:4B:99:D5:65:6D:97:78:D4:D8:14:36:24
Alias name: certumtrustednetworkca
	 SHA1: 07:E0:32:E0:20:B7:2C:3F:19:2F:06:28:A2:59:3A:19:A7:0F:06:9E
	 SHA256: 5C:58:46:8D:55:F5:8E:49:7E:74:39:82:D2:B5:00:10:B6:D1:65:37:4A:CF:83:A7:D4:A3:2D:B7:68:C4:40:8E
Alias name: certumtrustednetworkca2
	 SHA1: D3:DD:48:3E:2B:BF:4C:05:E8:AF:10:F5:FA:76:26:CF:D3:DC:30:92
	 SHA256: B6:76:F2:ED:DA:E8:77:5C:D3:6C:B0:F6:3C:D1:D4:60:39:61:F4:9E:62:65:BA:01:3A:2F:03:07:B6:D0:B8:04
Alias name: cfcaevroot
	 SHA1: E2:B8:29:4B:55:84:AB:6B:58:C2:90:46:6C:AC:3F:B8:39:8F:84:83
	 SHA256: 5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD
Alias name: chambersofcommerceroot2008
	 SHA1: 78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C
	 SHA256: 06:3E:4A:FA:C4:91:DF:D3:32:F3:08:9B:85:42:E9:46:17:D8:93:D7:FE:94:4E:10:A7:93:7E:E2:9D:96:93:C0
Alias name: chunghwaepkirootca
	 SHA1: 67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0
	 SHA256: C0:A6:F4:DC:63:A2:4B:FD:CF:54:EF:2A:6A:08:2A:0A:72:DE:35:80:3E:2F:F5:FF:52:7A:E5:D8:72:06:DF:D5
Alias name: cia-crt-g3-01-ca
	 SHA1: 2B:EE:2C:BA:A3:1D:B5:FE:60:40:41:95:08:ED:46:82:39:4D:ED:E2
	 SHA256: 20:48:AD:4C:EC:90:7F:FA:4A:15:D4:CE:45:E3:C8:E4:2C:EA:78:33:DC:C7:D3:40:48:FC:60:47:27:42:99:EC
Alias name: cia-crt-g3-02-ca
	 SHA1: 96:4A:BB:A7:BD:DA:FC:97:34:C0:0A:2D:F0:05:98:F7:E6:C6:6F:09
	 SHA256: 93:F1:72:FB:BA:43:31:5C:06:EE:0F:9F:04:89:B8:F6:88:BC:75:15:3C:BE:B4:80:AC:A7:14:3A:F6:FC:4A:C1
Alias name: comodo-ca
	 SHA1: AF:E5:D2:44:A8:D1:19:42:30:FF:47:9F:E2:F8:97:BB:CD:7A:8C:B4
	 SHA256: 52:F0:E1:C4:E5:8E:C6:29:29:1B:60:31:7F:07:46:71:B8:5D:7E:A8:0D:5B:07:27:34:63:53:4B:32:B4:02:34
Alias name: comodoaaaca
	 SHA1: D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
	 SHA256: D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
Alias name: comodoaaaservicesroot
	 SHA1: D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
	 SHA256: D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
Alias name: comodocertificationauthority
	 SHA1: 66:31:BF:9E:F7:4F:9E:B6:C9:D5:A6:0C:BA:6A:BE:D1:F7:BD:EF:7B
	 SHA256: 0C:2C:D6:3D:F7:80:6F:A3:99:ED:E8:09:11:6B:57:5B:F8:79:89:F0:65:18:F9:80:8C:86:05:03:17:8B:AF:66
Alias name: comodoecccertificationauthority
	 SHA1: 9F:74:4E:9F:2B:4D:BA:EC:0F:31:2C:50:B6:56:3B:8E:2D:93:C3:11
	 SHA256: 17:93:92:7A:06:14:54:97:89:AD:CE:2F:8F:34:F7:F0:B6:6D:0F:3A:E3:A3:B8:4D:21:EC:15:DB:BA:4F:AD:C7
Alias name: comodorsacertificationauthority
	 SHA1: AF:E5:D2:44:A8:D1:19:42:30:FF:47:9F:E2:F8:97:BB:CD:7A:8C:B4
	 SHA256: 52:F0:E1:C4:E5:8E:C6:29:29:1B:60:31:7F:07:46:71:B8:5D:7E:A8:0D:5B:07:27:34:63:53:4B:32:B4:02:34
Alias name: cybertrustglobalroot
	 SHA1: 5F:43:E5:B1:BF:F8:78:8C:AC:1C:C7:CA:4A:9A:C6:22:2B:CC:34:C6
	 SHA256: 96:0A:DF:00:63:E9:63:56:75:0C:29:65:DD:0A:08:67:DA:0B:9C:BD:6E:77:71:4A:EA:FB:23:49:AB:39:3D:A3
Alias name: deprecateditsecca
	 SHA1: 12:12:0B:03:0E:15:14:54:F4:DD:B3:F5:DE:13:6E:83:5A:29:72:9D
	 SHA256: 9A:59:DA:86:24:1A:FD:BA:A3:39:FA:9C:FD:21:6A:0B:06:69:4D:E3:7E:37:52:6B:BE:63:C8:BC:83:74:2E:CB
Alias name: deutschetelekomrootca2
	 SHA1: 85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF
	 SHA256: B6:19:1A:50:D0:C3:97:7F:7D:A9:9B:CD:AA:C8:6A:22:7D:AE:B9:67:9E:C7:0B:A3:B0:C9:D9:22:71:C1:70:D3
Alias name: digicertassuredidrootca
	 SHA1: 05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43
	 SHA256: 3E:90:99:B5:01:5E:8F:48:6C:00:BC:EA:9D:11:1E:E7:21:FA:BA:35:5A:89:BC:F1:DF:69:56:1E:3D:C6:32:5C
Alias name: digicertassuredidrootg2
	 SHA1: A1:4B:48:D9:43:EE:0A:0E:40:90:4F:3C:E0:A4:C0:91:93:51:5D:3F
	 SHA256: 7D:05:EB:B6:82:33:9F:8C:94:51:EE:09:4E:EB:FE:FA:79:53:A1:14:ED:B2:F4:49:49:45:2F:AB:7D:2F:C1:85
Alias name: digicertassuredidrootg3
	 SHA1: F5:17:A2:4F:9A:48:C6:C9:F8:A2:00:26:9F:DC:0F:48:2C:AB:30:89
	 SHA256: 7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2
Alias name: digicertglobalrootca
	 SHA1: A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36
	 SHA256: 43:48:A0:E9:44:4C:78:CB:26:5E:05:8D:5E:89:44:B4:D8:4F:96:62:BD:26:DB:25:7F:89:34:A4:43:C7:01:61
Alias name: digicertglobalrootg2
	 SHA1: DF:3C:24:F9:BF:D6:66:76:1B:26:80:73:FE:06:D1:CC:8D:4F:82:A4
	 SHA256: CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F
Alias name: digicertglobalrootg3
	 SHA1: 7E:04:DE:89:6A:3E:66:6D:00:E6:87:D3:3F:FA:D9:3B:E8:3D:34:9E
	 SHA256: 31:AD:66:48:F8:10:41:38:C7:38:F3:9E:A4:32:01:33:39:3E:3A:18:CC:02:29:6E:F9:7C:2A:C9:EF:67:31:D0
Alias name: digicerthighassuranceevrootca
	 SHA1: 5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25
	 SHA256: 74:31:E5:F4:C3:C1:CE:46:90:77:4F:0B:61:E0:54:40:88:3B:A9:A0:1E:D0:0B:A6:AB:D7:80:6E:D3:B1:18:CF
Alias name: digicerttrustedrootg4
	 SHA1: DD:FB:16:CD:49:31:C9:73:A2:03:7D:3F:C8:3A:4D:7D:77:5D:05:E4
	 SHA256: 55:2F:7B:DC:F1:A7:AF:9E:6C:E6:72:01:7F:4F:12:AB:F7:72:40:C7:8E:76:1A:C2:03:D1:D9:D2:0A:C8:99:88
Alias name: dstrootcax3
	 SHA1: DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13
	 SHA256: 06:87:26:03:31:A7:24:03:D9:09:F1:05:E6:9B:CF:0D:32:E1:BD:24:93:FF:C6:D9:20:6D:11:BC:D6:77:07:39
Alias name: dtrustrootclass3ca22009
	 SHA1: 58:E8:AB:B0:36:15:33:FB:80:F7:9B:1B:6D:29:D3:FF:8D:5F:00:F0
	 SHA256: 49:E7:A4:42:AC:F0:EA:62:87:05:00:54:B5:25:64:B6:50:E4:F4:9E:42:E3:48:D6:AA:38:E0:39:E9:57:B1:C1
Alias name: dtrustrootclass3ca2ev2009
	 SHA1: 96:C9:1B:0B:95:B4:10:98:42:FA:D0:D8:22:79:FE:60:FA:B9:16:83
	 SHA256: EE:C5:49:6B:98:8C:E9:86:25:B9:34:09:2E:EC:29:08:BE:D0:B0:F3:16:C2:D4:73:0C:84:EA:F1:F3:D3:48:81
Alias name: ecacc
	 SHA1: 28:90:3A:63:5B:52:80:FA:E6:77:4C:0B:6D:A7:D6:BA:A6:4A:F2:E8
	 SHA256: 88:49:7F:01:60:2F:31:54:24:6A:E2:8C:4D:5A:EF:10:F1:D8:7E:BB:76:62:6F:4A:E0:B7:F9:5B:A7:96:87:99
Alias name: emsigneccrootcac3
	 SHA1: B6:AF:43:C2:9B:81:53:7D:F6:EF:6B:C3:1F:1F:60:15:0C:EE:48:66
	 SHA256: BC:4D:80:9B:15:18:9D:78:DB:3E:1D:8C:F4:F9:72:6A:79:5D:A1:64:3C:A5:F1:35:8E:1D:DB:0E:DC:0D:7E:B3
Alias name: emsigneccrootcag3
	 SHA1: 30:43:FA:4F:F2:57:DC:A0:C3:80:EE:2E:58:EA:78:B2:3F:E6:BB:C1
	 SHA256: 86:A1:EC:BA:08:9C:4A:8D:3B:BE:27:34:C6:12:BA:34:1D:81:3E:04:3C:F9:E8:A8:62:CD:5C:57:A3:6B:BE:6B
Alias name: emsignrootcac1
	 SHA1: E7:2E:F1:DF:FC:B2:09:28:CF:5D:D4:D5:67:37:B1:51:CB:86:4F:01
	 SHA256: 12:56:09:AA:30:1D:A0:A2:49:B9:7A:82:39:CB:6A:34:21:6F:44:DC:AC:9F:39:54:B1:42:92:F2:E8:C8:60:8F
Alias name: emsignrootcag1
	 SHA1: 8A:C7:AD:8F:73:AC:4E:C1:B5:75:4D:A5:40:F4:FC:CF:7C:B5:8E:8C
	 SHA256: 40:F6:AF:03:46:A9:9A:A1:CD:1D:55:5A:4E:9C:CE:62:C7:F9:63:46:03:EE:40:66:15:83:3D:C8:C8:D0:03:67
Alias name: entrust2048ca
	 SHA1: 50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31
	 SHA256: 6D:C4:71:72:E0:1C:BC:B0:BF:62:58:0D:89:5F:E2:B8:AC:9A:D4:F8:73:80:1E:0C:10:B9:C8:37:D2:1E:B1:77
Alias name: entrustevca
	 SHA1: B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9
	 SHA256: 73:C1:76:43:4F:1B:C6:D5:AD:F4:5B:0E:76:E7:27:28:7C:8D:E5:76:16:C1:E6:E6:14:1A:2B:2C:BC:7D:8E:4C
Alias name: entrustnetpremium2048secureserverca
	 SHA1: 50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31
	 SHA256: 6D:C4:71:72:E0:1C:BC:B0:BF:62:58:0D:89:5F:E2:B8:AC:9A:D4:F8:73:80:1E:0C:10:B9:C8:37:D2:1E:B1:77
Alias name: entrustrootcag2
	 SHA1: 8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4
	 SHA256: 43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39
Alias name: entrustrootcertificationauthority
	 SHA1: B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9
	 SHA256: 73:C1:76:43:4F:1B:C6:D5:AD:F4:5B:0E:76:E7:27:28:7C:8D:E5:76:16:C1:E6:E6:14:1A:2B:2C:BC:7D:8E:4C
Alias name: entrustrootcertificationauthorityec1
	 SHA1: 20:D8:06:40:DF:9B:25:F5:12:25:3A:11:EA:F7:59:8A:EB:14:B5:47
	 SHA256: 02:ED:0E:B2:8C:14:DA:45:16:5C:56:67:91:70:0D:64:51:D7:FB:56:F0:B2:AB:1D:3B:8E:B0:70:E5:6E:DF:F5
Alias name: entrustrootcertificationauthorityg2
	 SHA1: 8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4
	 SHA256: 43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39
Alias name: entrustrootcertificationauthorityg4
	 SHA1: 14:88:4E:86:26:37:B0:26:AF:59:62:5C:40:77:EC:35:29:BA:96:01
	 SHA256: DB:35:17:D1:F6:73:2A:2D:5A:B9:7C:53:3E:C7:07:79:EE:32:70:A6:2F:B4:AC:42:38:37:24:60:E6:F0:1E:88
Alias name: epkirootcertificationauthority
	 SHA1: 67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0
	 SHA256: C0:A6:F4:DC:63:A2:4B:FD:CF:54:EF:2A:6A:08:2A:0A:72:DE:35:80:3E:2F:F5:FF:52:7A:E5:D8:72:06:DF:D5
Alias name: equifaxsecureebusinessca1
	 SHA1: AE:E6:3D:70:E3:76:FB:C7:3A:EB:B0:A1:C1:D4:C4:7A:A7:40:B3:F4
	 SHA256: 2E:3A:2B:B5:11:25:05:83:6C:A8:96:8B:E2:CB:37:27:CE:9B:56:84:5C:6E:E9:8E:91:85:10:4A:FB:9A:F5:96
Alias name: equifaxsecureglobalebusinessca1
	 SHA1: 3A:74:CB:7A:47:DB:70:DE:89:1F:24:35:98:64:B8:2D:82:BD:1A:36
	 SHA256: 86:AB:5A:65:71:D3:32:9A:BC:D2:E4:E6:37:66:8B:A8:9C:73:1E:C2:93:B6:CB:A6:0F:71:63:40:A0:91:CE:AE
Alias name: eszignorootca2017
	 SHA1: 89:D4:83:03:4F:9E:9A:48:80:5F:72:37:D4:A9:A6:EF:CB:7C:1F:D1
	 SHA256: BE:B0:0B:30:83:9B:9B:C3:2C:32:E4:44:79:05:95:06:41:F2:64:21:B1:5E:D0:89:19:8B:51:8A:E2:EA:1B:99
Alias name: etugracertificationauthority
	 SHA1: 51:C6:E7:08:49:06:6E:F3:92:D4:5C:A0:0D:6D:A3:62:8F:C3:52:39
	 SHA256: B0:BF:D5:2B:B0:D7:D9:BD:92:BF:5D:4D:C1:3D:A2:55:C0:2C:54:2F:37:83:65:EA:89:39:11:F5:5E:55:F2:3C
Alias name: gd-class2-root.pem
	 SHA1: 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4
	 SHA256: C3:84:6B:F2:4B:9E:93:CA:64:27:4C:0E:C6:7C:1E:CC:5E:02:4F:FC:AC:D2:D7:40:19:35:0E:81:FE:54:6A:E4
Alias name: gd_bundle-g2.pem
	 SHA1: 27:AC:93:69:FA:F2:52:07:BB:26:27:CE:FA:CC:BE:4E:F9:C3:19:B8
	 SHA256: 97:3A:41:27:6F:FD:01:E0:27:A2:AA:D4:9E:34:C3:78:46:D3:E9:76:FF:6A:62:0B:67:12:E3:38:32:04:1A:A6
Alias name: gdcatrustauthr5root
	 SHA1: 0F:36:38:5B:81:1A:25:C3:9B:31:4E:83:CA:E9:34:66:70:CC:74:B4
	 SHA256: BF:FF:8F:D0:44:33:48:7D:6A:8A:A6:0C:1A:29:76:7A:9F:C2:BB:B0:5E:42:0F:71:3A:13:B9:92:89:1D:38:93
Alias name: gdroot-g2.pem
	 SHA1: 47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8B
	 SHA256: 45:14:0B:32:47:EB:9C:C8:C5:B4:F0:D7:B5:30:91:F7:32:92:08:9E:6E:5A:63:E2:74:9D:D3:AC:A9:19:8E:DA
Alias name: geotrustglobalca
	 SHA1: DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12
	 SHA256: FF:85:6A:2D:25:1D:CD:88:D3:66:56:F4:50:12:67:98:CF:AB:AA:DE:40:79:9C:72:2D:E4:D2:B5:DB:36:A7:3A
Alias name: geotrustprimaryca
	 SHA1: 32:3C:11:8E:1B:F7:B8:B6:52:54:E2:E2:10:0D:D6:02:90:37:F0:96
	 SHA256: 37:D5:10:06:C5:12:EA:AB:62:64:21:F1:EC:8C:92:01:3F:C5:F8:2A:E9:8E:E5:33:EB:46:19:B8:DE:B4:D0:6C
Alias name: geotrustprimarycag2
	 SHA1: 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0
	 SHA256: 5E:DB:7A:C4:3B:82:A0:6A:87:61:E8:D7:BE:49:79:EB:F2:61:1F:7D:D7:9B:F9:1C:1C:6B:56:6A:21:9E:D7:66
Alias name: geotrustprimarycag3
	 SHA1: 03:9E:ED:B8:0B:E7:A0:3C:69:53:89:3B:20:D2:D9:32:3A:4C:2A:FD
	 SHA256: B4:78:B8:12:25:0D:F8:78:63:5C:2A:A7:EC:7D:15:5E:AA:62:5E:E8:29:16:E2:CD:29:43:61:88:6C:D1:FB:D4
Alias name: geotrustprimarycertificationauthority
	 SHA1: 32:3C:11:8E:1B:F7:B8:B6:52:54:E2:E2:10:0D:D6:02:90:37:F0:96
	 SHA256: 37:D5:10:06:C5:12:EA:AB:62:64:21:F1:EC:8C:92:01:3F:C5:F8:2A:E9:8E:E5:33:EB:46:19:B8:DE:B4:D0:6C
Alias name: geotrustprimarycertificationauthorityg2
	 SHA1: 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0
	 SHA256: 5E:DB:7A:C4:3B:82:A0:6A:87:61:E8:D7:BE:49:79:EB:F2:61:1F:7D:D7:9B:F9:1C:1C:6B:56:6A:21:9E:D7:66
Alias name: geotrustprimarycertificationauthorityg3
	 SHA1: 03:9E:ED:B8:0B:E7:A0:3C:69:53:89:3B:20:D2:D9:32:3A:4C:2A:FD
	 SHA256: B4:78:B8:12:25:0D:F8:78:63:5C:2A:A7:EC:7D:15:5E:AA:62:5E:E8:29:16:E2:CD:29:43:61:88:6C:D1:FB:D4
Alias name: geotrustuniversalca
	 SHA1: E6:21:F3:35:43:79:05:9A:4B:68:30:9D:8A:2F:74:22:15:87:EC:79
	 SHA256: A0:45:9B:9F:63:B2:25:59:F5:FA:5D:4C:6D:B3:F9:F7:2F:F1:93:42:03:35:78:F0:73:BF:1D:1B:46:CB:B9:12
Alias name: geotrustuniversalca2
	 SHA1: 37:9A:19:7B:41:85:45:35:0C:A6:03:69:F3:3C:2E:AF:47:4F:20:79
	 SHA256: A0:23:4F:3B:C8:52:7C:A5:62:8E:EC:81:AD:5D:69:89:5D:A5:68:0D:C9:1D:1C:B8:47:7F:33:F8:78:B9:5B:0B
Alias name: globalchambersignroot2008
	 SHA1: 4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C
	 SHA256: 13:63:35:43:93:34:A7:69:80:16:A0:D3:24:DE:72:28:4E:07:9D:7B:52:20:BB:8F:BD:74:78:16:EE:BE:BA:CA
Alias name: globalsignca
	 SHA1: B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9C
	 SHA256: EB:D4:10:40:E4:BB:3E:C7:42:C9:E3:81:D3:1E:F2:A4:1A:48:B6:68:5C:96:E7:CE:F3:C1:DF:6C:D4:33:1C:99
Alias name: globalsigneccrootcar4
	 SHA1: 69:69:56:2E:40:80:F4:24:A1:E7:19:9F:14:BA:F3:EE:58:AB:6A:BB
	 SHA256: BE:C9:49:11:C2:95:56:76:DB:6C:0A:55:09:86:D7:6E:3B:A0:05:66:7C:44:2C:97:62:B4:FB:B7:73:DE:22:8C
Alias name: globalsigneccrootcar5
	 SHA1: 1F:24:C6:30:CD:A4:18:EF:20:69:FF:AD:4F:DD:5F:46:3A:1B:69:AA
	 SHA256: 17:9F:BC:14:8A:3D:D0:0F:D2:4E:A1:34:58:CC:43:BF:A7:F5:9C:81:82:D7:83:A5:13:F6:EB:EC:10:0C:89:24
Alias name: globalsignr2ca
	 SHA1: 75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FE
	 SHA256: CA:42:DD:41:74:5F:D0:B8:1E:B9:02:36:2C:F9:D8:BF:71:9D:A1:BD:1B:1E:FC:94:6F:5B:4C:99:F4:2C:1B:9E
Alias name: globalsignr3ca
	 SHA1: D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD
	 SHA256: CB:B5:22:D7:B7:F1:27:AD:6A:01:13:86:5B:DF:1C:D4:10:2E:7D:07:59:AF:63:5A:7C:F4:72:0D:C9:63:C5:3B
Alias name: globalsignrootca
	 SHA1: B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9C
	 SHA256: EB:D4:10:40:E4:BB:3E:C7:42:C9:E3:81:D3:1E:F2:A4:1A:48:B6:68:5C:96:E7:CE:F3:C1:DF:6C:D4:33:1C:99
Alias name: globalsignrootcar2
	 SHA1: 75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FE
	 SHA256: CA:42:DD:41:74:5F:D0:B8:1E:B9:02:36:2C:F9:D8:BF:71:9D:A1:BD:1B:1E:FC:94:6F:5B:4C:99:F4:2C:1B:9E
Alias name: globalsignrootcar3
	 SHA1: D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD
	 SHA256: CB:B5:22:D7:B7:F1:27:AD:6A:01:13:86:5B:DF:1C:D4:10:2E:7D:07:59:AF:63:5A:7C:F4:72:0D:C9:63:C5:3B
Alias name: globalsignrootcar6
	 SHA1: 80:94:64:0E:B5:A7:A1:CA:11:9C:1F:DD:D5:9F:81:02:63:A7:FB:D1
	 SHA256: 2C:AB:EA:FE:37:D0:6C:A2:2A:BA:73:91:C0:03:3D:25:98:29:52:C4:53:64:73:49:76:3A:3A:B5:AD:6C:CF:69
Alias name: godaddyclass2ca
	 SHA1: 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4
	 SHA256: C3:84:6B:F2:4B:9E:93:CA:64:27:4C:0E:C6:7C:1E:CC:5E:02:4F:FC:AC:D2:D7:40:19:35:0E:81:FE:54:6A:E4
Alias name: godaddyrootcertificateauthorityg2
	 SHA1: 47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8B
	 SHA256: 45:14:0B:32:47:EB:9C:C8:C5:B4:F0:D7:B5:30:91:F7:32:92:08:9E:6E:5A:63:E2:74:9D:D3:AC:A9:19:8E:DA
Alias name: godaddyrootg2ca
	 SHA1: 47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8B
	 SHA256: 45:14:0B:32:47:EB:9C:C8:C5:B4:F0:D7:B5:30:91:F7:32:92:08:9E:6E:5A:63:E2:74:9D:D3:AC:A9:19:8E:DA
Alias name: gtsrootr1
	 SHA1: E1:C9:50:E6:EF:22:F8:4C:56:45:72:8B:92:20:60:D7:D5:A7:A3:E8
	 SHA256: 2A:57:54:71:E3:13:40:BC:21:58:1C:BD:2C:F1:3E:15:84:63:20:3E:CE:94:BC:F9:D3:CC:19:6B:F0:9A:54:72
Alias name: gtsrootr2
	 SHA1: D2:73:96:2A:2A:5E:39:9F:73:3F:E1:C7:1E:64:3F:03:38:34:FC:4D
	 SHA256: C4:5D:7B:B0:8E:6D:67:E6:2E:42:35:11:0B:56:4E:5F:78:FD:92:EF:05:8C:84:0A:EA:4E:64:55:D7:58:5C:60
Alias name: gtsrootr3
	 SHA1: 30:D4:24:6F:07:FF:DB:91:89:8A:0B:E9:49:66:11:EB:8C:5E:46:E5
	 SHA256: 15:D5:B8:77:46:19:EA:7D:54:CE:1C:A6:D0:B0:C4:03:E0:37:A9:17:F1:31:E8:A0:4E:1E:6B:7A:71:BA:BC:E5
Alias name: gtsrootr4
	 SHA1: 2A:1D:60:27:D9:4A:B1:0A:1C:4D:91:5C:CD:33:A0:CB:3E:2D:54:CB
	 SHA256: 71:CC:A5:39:1F:9E:79:4B:04:80:25:30:B3:63:E1:21:DA:8A:30:43:BB:26:66:2F:EA:4D:CA:7F:C9:51:A4:BD
Alias name: hellenicacademicandresearchinstitutionseccrootca2015
	 SHA1: 9F:F1:71:8D:92:D5:9A:F3:7D:74:97:B4:BC:6F:84:68:0B:BA:B6:66
	 SHA256: 44:B5:45:AA:8A:25:E6:5A:73:CA:15:DC:27:FC:36:D2:4C:1C:B9:95:3A:06:65:39:B1:15:82:DC:48:7B:48:33
Alias name: hellenicacademicandresearchinstitutionsrootca2011
	 SHA1: FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D
	 SHA256: BC:10:4F:15:A4:8B:E7:09:DC:A5:42:A7:E1:D4:B9:DF:6F:05:45:27:E8:02:EA:A9:2D:59:54:44:25:8A:FE:71
Alias name: hellenicacademicandresearchinstitutionsrootca2015
	 SHA1: 01:0C:06:95:A6:98:19:14:FF:BF:5F:C6:B0:B6:95:EA:29:E9:12:A6
	 SHA256: A0:40:92:9A:02:CE:53:B4:AC:F4:F2:FF:C6:98:1C:E4:49:6F:75:5E:6D:45:FE:0B:2A:69:2B:CD:52:52:3F:36
Alias name: hongkongpostrootca1
	 SHA1: D6:DA:A8:20:8D:09:D2:15:4D:24:B5:2F:CB:34:6E:B2:58:B2:8A:58
	 SHA256: F9:E6:7D:33:6C:51:00:2A:C0:54:C6:32:02:2D:66:DD:A2:E7:E3:FF:F1:0A:D0:61:ED:31:D8:BB:B4:10:CF:B2
Alias name: hongkongpostrootca3
	 SHA1: 58:A2:D0:EC:20:52:81:5B:C1:F3:F8:64:02:24:4E:C2:8E:02:4B:02
	 SHA256: 5A:2F:C0:3F:0C:83:B0:90:BB:FA:40:60:4B:09:88:44:6C:76:36:18:3D:F9:84:6E:17:10:1A:44:7F:B8:EF:D6
Alias name: identrustcommercialrootca1
	 SHA1: DF:71:7E:AA:4A:D9:4E:C9:55:84:99:60:2D:48:DE:5F:BC:F0:3A:25
	 SHA256: 5D:56:49:9B:E4:D2:E0:8B:CF:CA:D0:8A:3E:38:72:3D:50:50:3B:DE:70:69:48:E4:2F:55:60:30:19:E5:28:AE
Alias name: identrustpublicsectorrootca1
	 SHA1: BA:29:41:60:77:98:3F:F4:F3:EF:F2:31:05:3B:2E:EA:6D:4D:45:FD
	 SHA256: 30:D0:89:5A:9A:44:8A:26:20:91:63:55:22:D1:F5:20:10:B5:86:7A:CA:E1:2C:78:EF:95:8F:D4:F4:38:9F:2F
Alias name: isrgrootx1
	 SHA1: CA:BD:2A:79:A1:07:6A:31:F2:1D:25:36:35:CB:03:9D:43:29:A5:E8
	 SHA256: 96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6
Alias name: izenpecom
	 SHA1: 2F:78:3D:25:52:18:A7:4A:65:39:71:B5:2C:A2:9C:45:15:6F:E9:19
	 SHA256: 25:30:CC:8E:98:32:15:02:BA:D9:6F:9B:1F:BA:1B:09:9E:2D:29:9E:0F:45:48:BB:91:4F:36:3B:C0:D4:53:1F
Alias name: keynectisrootca
	 SHA1: 9C:61:5C:4D:4D:85:10:3A:53:26:C2:4D:BA:EA:E4:A2:D2:D5:CC:97
	 SHA256: 42:10:F1:99:49:9A:9A:C3:3C:8D:E0:2B:A6:DB:AA:14:40:8B:DD:8A:6E:32:46:89:C1:92:2D:06:97:15:A3:32
Alias name: microseceszignorootca2009
	 SHA1: 89:DF:74:FE:5C:F4:0F:4A:80:F9:E3:37:7D:54:DA:91:E1:01:31:8E
	 SHA256: 3C:5F:81:FE:A5:FA:B8:2C:64:BF:A2:EA:EC:AF:CD:E8:E0:77:FC:86:20:A7:CA:E5:37:16:3D:F3:6E:DB:F3:78
Alias name: mozillacert0.pem
	 SHA1: 97:81:79:50:D8:1C:96:70:CC:34:D8:09:CF:79:44:31:36:7E:F4:74
	 SHA256: A5:31:25:18:8D:21:10:AA:96:4B:02:C7:B7:C6:DA:32:03:17:08:94:E5:FB:71:FF:FB:66:67:D5:E6:81:0A:36
Alias name: mozillacert1.pem
	 SHA1: 23:E5:94:94:51:95:F2:41:48:03:B4:D5:64:D2:A3:A3:F5:D8:8B:8C
	 SHA256: B4:41:0B:73:E2:E6:EA:CA:47:FB:C4:2F:8F:A4:01:8A:F4:38:1D:C5:4C:FA:A8:44:50:46:1E:ED:09:45:4D:E9
Alias name: mozillacert10.pem
	 SHA1: 5F:3A:FC:0A:8B:64:F6:86:67:34:74:DF:7E:A9:A2:FE:F9:FA:7A:51
	 SHA256: 21:DB:20:12:36:60:BB:2E:D4:18:20:5D:A1:1E:E7:A8:5A:65:E2:BC:6E:55:B5:AF:7E:78:99:C8:A2:66:D9:2E
Alias name: mozillacert100.pem
	 SHA1: 58:E8:AB:B0:36:15:33:FB:80:F7:9B:1B:6D:29:D3:FF:8D:5F:00:F0
	 SHA256: 49:E7:A4:42:AC:F0:EA:62:87:05:00:54:B5:25:64:B6:50:E4:F4:9E:42:E3:48:D6:AA:38:E0:39:E9:57:B1:C1
Alias name: mozillacert101.pem
	 SHA1: 99:A6:9B:E6:1A:FE:88:6B:4D:2B:82:00:7C:B8:54:FC:31:7E:15:39
	 SHA256: 62:F2:40:27:8C:56:4C:4D:D8:BF:7D:9D:4F:6F:36:6E:A8:94:D2:2F:5F:34:D9:89:A9:83:AC:EC:2F:FF:ED:50
Alias name: mozillacert102.pem
	 SHA1: 96:C9:1B:0B:95:B4:10:98:42:FA:D0:D8:22:79:FE:60:FA:B9:16:83
	 SHA256: EE:C5:49:6B:98:8C:E9:86:25:B9:34:09:2E:EC:29:08:BE:D0:B0:F3:16:C2:D4:73:0C:84:EA:F1:F3:D3:48:81
Alias name: mozillacert103.pem
	 SHA1: 70:C1:8D:74:B4:28:81:0A:E4:FD:A5:75:D7:01:9F:99:B0:3D:50:74
	 SHA256: 3C:FC:3C:14:D1:F6:84:FF:17:E3:8C:43:CA:44:0C:00:B9:67:EC:93:3E:8B:FE:06:4C:A1:D7:2C:90:F2:AD:B0
Alias name: mozillacert104.pem
	 SHA1: 4F:99:AA:93:FB:2B:D1:37:26:A1:99:4A:CE:7F:F0:05:F2:93:5D:1E
	 SHA256: 1C:01:C6:F4:DB:B2:FE:FC:22:55:8B:2B:CA:32:56:3F:49:84:4A:CF:C3:2B:7B:E4:B0:FF:59:9F:9E:8C:7A:F7
Alias name: mozillacert105.pem
	 SHA1: 77:47:4F:C6:30:E4:0F:4C:47:64:3F:84:BA:B8:C6:95:4A:8A:41:EC
	 SHA256: F0:9B:12:2C:71:14:F4:A0:9B:D4:EA:4F:4A:99:D5:58:B4:6E:4C:25:CD:81:14:0D:29:C0:56:13:91:4C:38:41
Alias name: mozillacert106.pem
	 SHA1: E7:A1:90:29:D3:D5:52:DC:0D:0F:C6:92:D3:EA:88:0D:15:2E:1A:6B
	 SHA256: D9:5F:EA:3C:A4:EE:DC:E7:4C:D7:6E:75:FC:6D:1F:F6:2C:44:1F:0F:A8:BC:77:F0:34:B1:9E:5D:B2:58:01:5D
Alias name: mozillacert107.pem
	 SHA1: 8E:1C:74:F8:A6:20:B9:E5:8A:F4:61:FA:EC:2B:47:56:51:1A:52:C6
	 SHA256: F9:6F:23:F4:C3:E7:9C:07:7A:46:98:8D:5A:F5:90:06:76:A0:F0:39:CB:64:5D:D1:75:49:B2:16:C8:24:40:CE
Alias name: mozillacert108.pem
	 SHA1: B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9C
	 SHA256: EB:D4:10:40:E4:BB:3E:C7:42:C9:E3:81:D3:1E:F2:A4:1A:48:B6:68:5C:96:E7:CE:F3:C1:DF:6C:D4:33:1C:99
Alias name: mozillacert109.pem
	 SHA1: B5:61:EB:EA:A4:DE:E4:25:4B:69:1A:98:A5:57:47:C2:34:C7:D9:71
	 SHA256: E2:3D:4A:03:6D:7B:70:E9:F5:95:B1:42:20:79:D2:B9:1E:DF:BB:1F:B6:51:A0:63:3E:AA:8A:9D:C5:F8:07:03
Alias name: mozillacert11.pem
	 SHA1: 05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43
	 SHA256: 3E:90:99:B5:01:5E:8F:48:6C:00:BC:EA:9D:11:1E:E7:21:FA:BA:35:5A:89:BC:F1:DF:69:56:1E:3D:C6:32:5C
Alias name: mozillacert110.pem
	 SHA1: 93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17
	 SHA256: 9A:6E:C0:12:E1:A7:DA:9D:BE:34:19:4D:47:8A:D7:C0:DB:18:22:FB:07:1D:F1:29:81:49:6E:D1:04:38:41:13
Alias name: mozillacert111.pem
	 SHA1: 9C:BB:48:53:F6:A4:F6:D3:52:A4:E8:32:52:55:60:13:F5:AD:AF:65
	 SHA256: 59:76:90:07:F7:68:5D:0F:CD:50:87:2F:9F:95:D5:75:5A:5B:2B:45:7D:81:F3:69:2B:61:0A:98:67:2F:0E:1B
Alias name: mozillacert112.pem
	 SHA1: 43:13:BB:96:F1:D5:86:9B:C1:4E:6A:92:F6:CF:F6:34:69:87:82:37
	 SHA256: DD:69:36:FE:21:F8:F0:77:C1:23:A1:A5:21:C1:22:24:F7:22:55:B7:3E:03:A7:26:06:93:E8:A2:4B:0F:A3:89
Alias name: mozillacert113.pem
	 SHA1: 50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31
	 SHA256: 6D:C4:71:72:E0:1C:BC:B0:BF:62:58:0D:89:5F:E2:B8:AC:9A:D4:F8:73:80:1E:0C:10:B9:C8:37:D2:1E:B1:77
Alias name: mozillacert114.pem
	 SHA1: 51:C6:E7:08:49:06:6E:F3:92:D4:5C:A0:0D:6D:A3:62:8F:C3:52:39
	 SHA256: B0:BF:D5:2B:B0:D7:D9:BD:92:BF:5D:4D:C1:3D:A2:55:C0:2C:54:2F:37:83:65:EA:89:39:11:F5:5E:55:F2:3C
Alias name: mozillacert115.pem
	 SHA1: 59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9
	 SHA256: 91:E2:F5:78:8D:58:10:EB:A7:BA:58:73:7D:E1:54:8A:8E:CA:CD:01:45:98:BC:0B:14:3E:04:1B:17:05:25:52
Alias name: mozillacert116.pem
	 SHA1: 2B:B1:F5:3E:55:0C:1D:C5:F1:D4:E6:B7:6A:46:4B:55:06:02:AC:21
	 SHA256: F3:56:BE:A2:44:B7:A9:1E:B3:5D:53:CA:9A:D7:86:4A:CE:01:8E:2D:35:D5:F8:F9:6D:DF:68:A6:F4:1A:A4:74
Alias name: mozillacert117.pem
	 SHA1: D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74
	 SHA256: 16:AF:57:A9:F6:76:B0:AB:12:60:95:AA:5E:BA:DE:F2:2A:B3:11:19:D6:44:AC:95:CD:4B:93:DB:F3:F2:6A:EB
Alias name: mozillacert118.pem
	 SHA1: 7E:78:4A:10:1C:82:65:CC:2D:E1:F1:6D:47:B4:40:CA:D9:0A:19:45
	 SHA256: 5F:0B:62:EA:B5:E3:53:EA:65:21:65:16:58:FB:B6:53:59:F4:43:28:0A:4A:FB:D1:04:D7:7D:10:F9:F0:4C:07
Alias name: mozillacert119.pem
	 SHA1: 75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FE
	 SHA256: CA:42:DD:41:74:5F:D0:B8:1E:B9:02:36:2C:F9:D8:BF:71:9D:A1:BD:1B:1E:FC:94:6F:5B:4C:99:F4:2C:1B:9E
Alias name: mozillacert12.pem
	 SHA1: A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36
	 SHA256: 43:48:A0:E9:44:4C:78:CB:26:5E:05:8D:5E:89:44:B4:D8:4F:96:62:BD:26:DB:25:7F:89:34:A4:43:C7:01:61
Alias name: mozillacert120.pem
	 SHA1: DA:40:18:8B:91:89:A3:ED:EE:AE:DA:97:FE:2F:9D:F5:B7:D1:8A:41
	 SHA256: CF:56:FF:46:A4:A1:86:10:9D:D9:65:84:B5:EE:B5:8A:51:0C:42:75:B0:E5:F9:4F:40:BB:AE:86:5E:19:F6:73
Alias name: mozillacert121.pem
	 SHA1: CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D
	 SHA256: 8C:72:09:27:9A:C0:4E:27:5E:16:D0:7F:D3:B7:75:E8:01:54:B5:96:80:46:E3:1F:52:DD:25:76:63:24:E9:A7
Alias name: mozillacert122.pem
	 SHA1: 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68
	 SHA256: 68:7F:A4:51:38:22:78:FF:F0:C8:B1:1F:8D:43:D5:76:67:1C:6E:B2:BC:EA:B4:13:FB:83:D9:65:D0:6D:2F:F2
Alias name: mozillacert123.pem
	 SHA1: 2A:B6:28:48:5E:78:FB:F3:AD:9E:79:10:DD:6B:DF:99:72:2C:96:E5
	 SHA256: 07:91:CA:07:49:B2:07:82:AA:D3:C7:D7:BD:0C:DF:C9:48:58:35:84:3E:B2:D7:99:60:09:CE:43:AB:6C:69:27
Alias name: mozillacert124.pem
	 SHA1: 4D:23:78:EC:91:95:39:B5:00:7F:75:8F:03:3B:21:1E:C5:4D:8B:CF
	 SHA256: 80:95:21:08:05:DB:4B:BC:35:5E:44:28:D8:FD:6E:C2:CD:E3:AB:5F:B9:7A:99:42:98:8E:B8:F4:DC:D0:60:16
Alias name: mozillacert125.pem
	 SHA1: B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9
	 SHA256: 73:C1:76:43:4F:1B:C6:D5:AD:F4:5B:0E:76:E7:27:28:7C:8D:E5:76:16:C1:E6:E6:14:1A:2B:2C:BC:7D:8E:4C
Alias name: mozillacert126.pem
	 SHA1: 25:01:90:19:CF:FB:D9:99:1C:B7:68:25:74:8D:94:5F:30:93:95:42
	 SHA256: AF:8B:67:62:A1:E5:28:22:81:61:A9:5D:5C:55:9E:E2:66:27:8F:75:D7:9E:83:01:89:A5:03:50:6A:BD:6B:4C
Alias name: mozillacert127.pem
	 SHA1: DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12
	 SHA256: FF:85:6A:2D:25:1D:CD:88:D3:66:56:F4:50:12:67:98:CF:AB:AA:DE:40:79:9C:72:2D:E4:D2:B5:DB:36:A7:3A
Alias name: mozillacert128.pem
	 SHA1: A9:E9:78:08:14:37:58:88:F2:05:19:B0:6D:2B:0D:2B:60:16:90:7D
	 SHA256: CA:2D:82:A0:86:77:07:2F:8A:B6:76:4F:F0:35:67:6C:FE:3E:5E:32:5E:01:21:72:DF:3F:92:09:6D:B7:9B:85
Alias name: mozillacert129.pem
	 SHA1: E6:21:F3:35:43:79:05:9A:4B:68:30:9D:8A:2F:74:22:15:87:EC:79
	 SHA256: A0:45:9B:9F:63:B2:25:59:F5:FA:5D:4C:6D:B3:F9:F7:2F:F1:93:42:03:35:78:F0:73:BF:1D:1B:46:CB:B9:12
Alias name: mozillacert13.pem
	 SHA1: 06:08:3F:59:3F:15:A1:04:A0:69:A4:6B:A9:03:D0:06:B7:97:09:91
	 SHA256: 6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98
Alias name: mozillacert130.pem
	 SHA1: E5:DF:74:3C:B6:01:C4:9B:98:43:DC:AB:8C:E8:6A:81:10:9F:E4:8E
	 SHA256: F4:C1:49:55:1A:30:13:A3:5B:C7:BF:FE:17:A7:F3:44:9B:C1:AB:5B:5A:0A:E7:4B:06:C2:3B:90:00:4C:01:04
Alias name: mozillacert131.pem
	 SHA1: 37:9A:19:7B:41:85:45:35:0C:A6:03:69:F3:3C:2E:AF:47:4F:20:79
	 SHA256: A0:23:4F:3B:C8:52:7C:A5:62:8E:EC:81:AD:5D:69:89:5D:A5:68:0D:C9:1D:1C:B8:47:7F:33:F8:78:B9:5B:0B
Alias name: mozillacert132.pem
	 SHA1: 39:21:C1:15:C1:5D:0E:CA:5C:CB:5B:C4:F0:7D:21:D8:05:0B:56:6A
	 SHA256: 77:40:73:12:C6:3A:15:3D:5B:C0:0B:4E:51:75:9C:DF:DA:C2:37:DC:2A:33:B6:79:46:E9:8E:9B:FA:68:0A:E3
Alias name: mozillacert133.pem
	 SHA1: 85:B5:FF:67:9B:0C:79:96:1F:C8:6E:44:22:00:46:13:DB:17:92:84
	 SHA256: 7D:3B:46:5A:60:14:E5:26:C0:AF:FC:EE:21:27:D2:31:17:27:AD:81:1C:26:84:2D:00:6A:F3:73:06:CC:80:BD
Alias name: mozillacert134.pem
	 SHA1: 70:17:9B:86:8C:00:A4:FA:60:91:52:22:3F:9F:3E:32:BD:E0:05:62
	 SHA256: 69:FA:C9:BD:55:FB:0A:C7:8D:53:BB:EE:5C:F1:D5:97:98:9F:D0:AA:AB:20:A2:51:51:BD:F1:73:3E:E7:D1:22
Alias name: mozillacert135.pem
	 SHA1: 62:52:DC:40:F7:11:43:A2:2F:DE:9E:F7:34:8E:06:42:51:B1:81:18
	 SHA256: D8:E0:FE:BC:1D:B2:E3:8D:00:94:0F:37:D2:7D:41:34:4D:99:3E:73:4B:99:D5:65:6D:97:78:D4:D8:14:36:24
Alias name: mozillacert136.pem
	 SHA1: D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
	 SHA256: D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
Alias name: mozillacert137.pem
	 SHA1: 4A:65:D5:F4:1D:EF:39:B8:B8:90:4A:4A:D3:64:81:33:CF:C7:A1:D1
	 SHA256: BD:81:CE:3B:4F:65:91:D1:1A:67:B5:FC:7A:47:FD:EF:25:52:1B:F9:AA:4E:18:B9:E3:DF:2E:34:A7:80:3B:E8
Alias name: mozillacert138.pem
	 SHA1: E1:9F:E3:0E:8B:84:60:9E:80:9B:17:0D:72:A8:C5:BA:6E:14:09:BD
	 SHA256: 3F:06:E5:56:81:D4:96:F5:BE:16:9E:B5:38:9F:9F:2B:8F:F6:1E:17:08:DF:68:81:72:48:49:CD:5D:27:CB:69
Alias name: mozillacert139.pem
	 SHA1: DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9
	 SHA256: A4:5E:DE:3B:BB:F0:9C:8A:E1:5C:72:EF:C0:72:68:D6:93:A2:1C:99:6F:D5:1E:67:CA:07:94:60:FD:6D:88:73
Alias name: mozillacert14.pem
	 SHA1: 5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25
	 SHA256: 74:31:E5:F4:C3:C1:CE:46:90:77:4F:0B:61:E0:54:40:88:3B:A9:A0:1E:D0:0B:A6:AB:D7:80:6E:D3:B1:18:CF
Alias name: mozillacert140.pem
	 SHA1: CA:3A:FB:CF:12:40:36:4B:44:B2:16:20:88:80:48:39:19:93:7C:F7
	 SHA256: 85:A0:DD:7D:D7:20:AD:B7:FF:05:F8:3D:54:2B:20:9D:C7:FF:45:28:F7:D6:77:B1:83:89:FE:A5:E5:C4:9E:86
Alias name: mozillacert141.pem
	 SHA1: 31:7A:2A:D0:7F:2B:33:5E:F5:A1:C3:4E:4B:57:E8:B7:D8:F1:FC:A6
	 SHA256: 58:D0:17:27:9C:D4:DC:63:AB:DD:B1:96:A6:C9:90:6C:30:C4:E0:87:83:EA:E8:C1:60:99:54:D6:93:55:59:6B
Alias name: mozillacert142.pem
	 SHA1: 1F:49:14:F7:D8:74:95:1D:DD:AE:02:C0:BE:FD:3A:2D:82:75:51:85
	 SHA256: 18:F1:FC:7F:20:5D:F8:AD:DD:EB:7F:E0:07:DD:57:E3:AF:37:5A:9C:4D:8D:73:54:6B:F4:F1:FE:D1:E1:8D:35
Alias name: mozillacert143.pem
	 SHA1: 36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7
	 SHA256: E7:5E:72:ED:9F:56:0E:EC:6E:B4:80:00:73:A4:3F:C3:AD:19:19:5A:39:22:82:01:78:95:97:4A:99:02:6B:6C
Alias name: mozillacert144.pem
	 SHA1: 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27
	 SHA256: 79:08:B4:03:14:C1:38:10:0B:51:8D:07:35:80:7F:FB:FC:F8:51:8A:00:95:33:71:05:BA:38:6B:15:3D:D9:27
Alias name: mozillacert145.pem
	 SHA1: 10:1D:FA:3F:D5:0B:CB:BB:9B:B5:60:0C:19:55:A4:1A:F4:73:3A:04
	 SHA256: D4:1D:82:9E:8C:16:59:82:2A:F9:3F:CE:62:BF:FC:DE:26:4F:C8:4E:8B:95:0C:5F:F2:75:D0:52:35:46:95:A3
Alias name: mozillacert146.pem
	 SHA1: 21:FC:BD:8E:7F:6C:AF:05:1B:D1:B3:43:EC:A8:E7:61:47:F2:0F:8A
	 SHA256: 48:98:C6:88:8C:0C:FF:B0:D3:E3:1A:CA:8A:37:D4:E3:51:5F:F7:46:D0:26:35:D8:66:46:CF:A0:A3:18:5A:E7
Alias name: mozillacert147.pem
	 SHA1: 58:11:9F:0E:12:82:87:EA:50:FD:D9:87:45:6F:4F:78:DC:FA:D6:D4
	 SHA256: 85:FB:2F:91:DD:12:27:5A:01:45:B6:36:53:4F:84:02:4A:D6:8B:69:B8:EE:88:68:4F:F7:11:37:58:05:B3:48
Alias name: mozillacert148.pem
	 SHA1: 04:83:ED:33:99:AC:36:08:05:87:22:ED:BC:5E:46:00:E3:BE:F9:D7
	 SHA256: 6E:A5:47:41:D0:04:66:7E:ED:1B:48:16:63:4A:A3:A7:9E:6E:4B:96:95:0F:82:79:DA:FC:8D:9B:D8:81:21:37
Alias name: mozillacert149.pem
	 SHA1: 6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1
	 SHA256: 0C:25:8A:12:A5:67:4A:EF:25:F2:8B:A7:DC:FA:EC:EE:A3:48:E5:41:E6:F5:CC:4E:E6:3B:71:B3:61:60:6A:C3
Alias name: mozillacert15.pem
	 SHA1: 74:20:74:41:72:9C:DD:92:EC:79:31:D8:23:10:8D:C2:81:92:E2:BB
	 SHA256: 0F:99:3C:8A:EF:97:BA:AF:56:87:14:0E:D5:9A:D1:82:1B:B4:AF:AC:F0:AA:9A:58:B5:D5:7A:33:8A:3A:FB:CB
Alias name: mozillacert150.pem
	 SHA1: 33:9B:6B:14:50:24:9B:55:7A:01:87:72:84:D9:E0:2F:C3:D2:D8:E9
	 SHA256: EF:3C:B4:17:FC:8E:BF:6F:97:87:6C:9E:4E:CE:39:DE:1E:A5:FE:64:91:41:D1:02:8B:7D:11:C0:B2:29:8C:ED
Alias name: mozillacert151.pem
	 SHA1: AC:ED:5F:65:53:FD:25:CE:01:5F:1F:7A:48:3B:6A:74:9F:61:78:C6
	 SHA256: 7F:12:CD:5F:7E:5E:29:0E:C7:D8:51:79:D5:B7:2C:20:A5:BE:75:08:FF:DB:5B:F8:1A:B9:68:4A:7F:C9:F6:67
Alias name: mozillacert16.pem
	 SHA1: DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13
	 SHA256: 06:87:26:03:31:A7:24:03:D9:09:F1:05:E6:9B:CF:0D:32:E1:BD:24:93:FF:C6:D9:20:6D:11:BC:D6:77:07:39
Alias name: mozillacert17.pem
	 SHA1: 40:54:DA:6F:1C:3F:40:74:AC:ED:0F:EC:CD:DB:79:D1:53:FB:90:1D
	 SHA256: 76:7C:95:5A:76:41:2C:89:AF:68:8E:90:A1:C7:0F:55:6C:FD:6B:60:25:DB:EA:10:41:6D:7E:B6:83:1F:8C:40
Alias name: mozillacert18.pem
	 SHA1: 79:98:A3:08:E1:4D:65:85:E6:C2:1E:15:3A:71:9F:BA:5A:D3:4A:D9
	 SHA256: 44:04:E3:3B:5E:14:0D:CF:99:80:51:FD:FC:80:28:C7:C8:16:15:C5:EE:73:7B:11:1B:58:82:33:A9:B5:35:A0
Alias name: mozillacert19.pem
	 SHA1: B4:35:D4:E1:11:9D:1C:66:90:A7:49:EB:B3:94:BD:63:7B:A7:82:B7
	 SHA256: C4:70:CF:54:7E:23:02:B9:77:FB:29:DD:71:A8:9A:7B:6C:1F:60:77:7B:03:29:F5:60:17:F3:28:BF:4F:6B:E6
Alias name: mozillacert2.pem
	 SHA1: 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3A
	 SHA256: 69:DD:D7:EA:90:BB:57:C9:3E:13:5D:C8:5E:A6:FC:D5:48:0B:60:32:39:BD:C4:54:FC:75:8B:2A:26:CF:7F:79
Alias name: mozillacert20.pem
	 SHA1: D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61
	 SHA256: 62:DD:0B:E9:B9:F5:0A:16:3E:A0:F8:E7:5C:05:3B:1E:CA:57:EA:55:C8:68:8F:64:7C:68:81:F2:C8:35:7B:95
Alias name: mozillacert21.pem
	 SHA1: 9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB
	 SHA256: BE:6C:4D:A2:BB:B9:BA:59:B6:F3:93:97:68:37:42:46:C3:C0:05:99:3F:A9:8F:02:0D:1D:ED:BE:D4:8A:81:D5
Alias name: mozillacert22.pem
	 SHA1: 32:3C:11:8E:1B:F7:B8:B6:52:54:E2:E2:10:0D:D6:02:90:37:F0:96
	 SHA256: 37:D5:10:06:C5:12:EA:AB:62:64:21:F1:EC:8C:92:01:3F:C5:F8:2A:E9:8E:E5:33:EB:46:19:B8:DE:B4:D0:6C
Alias name: mozillacert23.pem
	 SHA1: 91:C6:D6:EE:3E:8A:C8:63:84:E5:48:C2:99:29:5C:75:6C:81:7B:81
	 SHA256: 8D:72:2F:81:A9:C1:13:C0:79:1D:F1:36:A2:96:6D:B2:6C:95:0A:97:1D:B4:6B:41:99:F4:EA:54:B7:8B:FB:9F
Alias name: mozillacert24.pem
	 SHA1: 59:AF:82:79:91:86:C7:B4:75:07:CB:CF:03:57:46:EB:04:DD:B7:16
	 SHA256: 66:8C:83:94:7D:A6:3B:72:4B:EC:E1:74:3C:31:A0:E6:AE:D0:DB:8E:C5:B3:1B:E3:77:BB:78:4F:91:B6:71:6F
Alias name: mozillacert25.pem
	 SHA1: 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5
	 SHA256: 9A:CF:AB:7E:43:C8:D8:80:D0:6B:26:2A:94:DE:EE:E4:B4:65:99:89:C3:D0:CA:F1:9B:AF:64:05:E4:1A:B7:DF
Alias name: mozillacert26.pem
	 SHA1: 87:82:C6:C3:04:35:3B:CF:D2:96:92:D2:59:3E:7D:44:D9:34:FF:11
	 SHA256: F1:C1:B5:0A:E5:A2:0D:D8:03:0E:C9:F6:BC:24:82:3D:D3:67:B5:25:57:59:B4:E7:1B:61:FC:E9:F7:37:5D:73
Alias name: mozillacert27.pem
	 SHA1: 3A:44:73:5A:E5:81:90:1F:24:86:61:46:1E:3B:9C:C4:5F:F5:3A:1B
	 SHA256: 42:00:F5:04:3A:C8:59:0E:BB:52:7D:20:9E:D1:50:30:29:FB:CB:D4:1C:A1:B5:06:EC:27:F1:5A:DE:7D:AC:69
Alias name: mozillacert28.pem
	 SHA1: 66:31:BF:9E:F7:4F:9E:B6:C9:D5:A6:0C:BA:6A:BE:D1:F7:BD:EF:7B
	 SHA256: 0C:2C:D6:3D:F7:80:6F:A3:99:ED:E8:09:11:6B:57:5B:F8:79:89:F0:65:18:F9:80:8C:86:05:03:17:8B:AF:66
Alias name: mozillacert29.pem
	 SHA1: 74:F8:A3:C3:EF:E7:B3:90:06:4B:83:90:3C:21:64:60:20:E5:DF:CE
	 SHA256: 15:F0:BA:00:A3:AC:7A:F3:AC:88:4C:07:2B:10:11:A0:77:BD:77:C0:97:F4:01:64:B2:F8:59:8A:BD:83:86:0C
Alias name: mozillacert3.pem
	 SHA1: 87:9F:4B:EE:05:DF:98:58:3B:E3:60:D6:33:E7:0D:3F:FE:98:71:AF
	 SHA256: 39:DF:7B:68:2B:7B:93:8F:84:71:54:81:CC:DE:8D:60:D8:F2:2E:C5:98:87:7D:0A:AA:C1:2B:59:18:2B:03:12
Alias name: mozillacert30.pem
	 SHA1: E7:B4:F6:9D:61:EC:90:69:DB:7E:90:A7:40:1A:3C:F4:7D:4F:E8:EE
	 SHA256: A7:12:72:AE:AA:A3:CF:E8:72:7F:7F:B3:9F:0F:B3:D1:E5:42:6E:90:60:B0:6E:E6:F1:3E:9A:3C:58:33:CD:43
Alias name: mozillacert31.pem
	 SHA1: 9F:74:4E:9F:2B:4D:BA:EC:0F:31:2C:50:B6:56:3B:8E:2D:93:C3:11
	 SHA256: 17:93:92:7A:06:14:54:97:89:AD:CE:2F:8F:34:F7:F0:B6:6D:0F:3A:E3:A3:B8:4D:21:EC:15:DB:BA:4F:AD:C7
Alias name: mozillacert32.pem
	 SHA1: 60:D6:89:74:B5:C2:65:9E:8A:0F:C1:88:7C:88:D2:46:69:1B:18:2C
	 SHA256: B9:BE:A7:86:0A:96:2E:A3:61:1D:AB:97:AB:6D:A3:E2:1C:10:68:B9:7D:55:57:5E:D0:E1:12:79:C1:1C:89:32
Alias name: mozillacert33.pem
	 SHA1: FE:B8:C4:32:DC:F9:76:9A:CE:AE:3D:D8:90:8F:FD:28:86:65:64:7D
	 SHA256: A2:2D:BA:68:1E:97:37:6E:2D:39:7D:72:8A:AE:3A:9B:62:96:B9:FD:BA:60:BC:2E:11:F6:47:F2:C6:75:FB:37
Alias name: mozillacert34.pem
	 SHA1: 59:22:A1:E1:5A:EA:16:35:21:F8:98:39:6A:46:46:B0:44:1B:0F:A9
	 SHA256: 41:C9:23:86:6A:B4:CA:D6:B7:AD:57:80:81:58:2E:02:07:97:A6:CB:DF:4F:FF:78:CE:83:96:B3:89:37:D7:F5
Alias name: mozillacert35.pem
	 SHA1: 2A:C8:D5:8B:57:CE:BF:2F:49:AF:F2:FC:76:8F:51:14:62:90:7A:41
	 SHA256: 92:BF:51:19:AB:EC:CA:D0:B1:33:2D:C4:E1:D0:5F:BA:75:B5:67:90:44:EE:0C:A2:6E:93:1F:74:4F:2F:33:CF
Alias name: mozillacert36.pem
	 SHA1: 23:88:C9:D3:71:CC:9E:96:3D:FF:7D:3C:A7:CE:FC:D6:25:EC:19:0D
	 SHA256: 32:7A:3D:76:1A:BA:DE:A0:34:EB:99:84:06:27:5C:B1:A4:77:6E:FD:AE:2F:DF:6D:01:68:EA:1C:4F:55:67:D0
Alias name: mozillacert37.pem
	 SHA1: B1:2E:13:63:45:86:A4:6F:1A:B2:60:68:37:58:2D:C4:AC:FD:94:97
	 SHA256: E3:B6:A2:DB:2E:D7:CE:48:84:2F:7A:C5:32:41:C7:B7:1D:54:14:4B:FB:40:C1:1F:3F:1D:0B:42:F5:EE:A1:2D
Alias name: mozillacert38.pem
	 SHA1: CB:A1:C5:F8:B0:E3:5E:B8:B9:45:12:D3:F9:34:A2:E9:06:10:D3:36
	 SHA256: A6:C5:1E:0D:A5:CA:0A:93:09:D2:E4:C0:E4:0C:2A:F9:10:7A:AE:82:03:85:7F:E1:98:E3:E7:69:E3:43:08:5C
Alias name: mozillacert39.pem
	 SHA1: AE:50:83:ED:7C:F4:5C:BC:8F:61:C6:21:FE:68:5D:79:42:21:15:6E
	 SHA256: E6:B8:F8:76:64:85:F8:07:AE:7F:8D:AC:16:70:46:1F:07:C0:A1:3E:EF:3A:1F:F7:17:53:8D:7A:BA:D3:91:B4
Alias name: mozillacert4.pem
	 SHA1: E3:92:51:2F:0A:CF:F5:05:DF:F6:DE:06:7F:75:37:E1:65:EA:57:4B
	 SHA256: 0B:5E:ED:4E:84:64:03:CF:55:E0:65:84:84:40:ED:2A:82:75:8B:F5:B9:AA:1F:25:3D:46:13:CF:A0:80:FF:3F
Alias name: mozillacert40.pem
	 SHA1: 80:25:EF:F4:6E:70:C8:D4:72:24:65:84:FE:40:3B:8A:8D:6A:DB:F5
	 SHA256: 8D:A0:84:FC:F9:9C:E0:77:22:F8:9B:32:05:93:98:06:FA:5C:B8:11:E1:C8:13:F6:A1:08:C7:D3:36:B3:40:8E
Alias name: mozillacert41.pem
	 SHA1: 6B:2F:34:AD:89:58:BE:62:FD:B0:6B:5C:CE:BB:9D:D9:4F:4E:39:F3
	 SHA256: EB:F3:C0:2A:87:89:B1:FB:7D:51:19:95:D6:63:B7:29:06:D9:13:CE:0D:5E:10:56:8A:8A:77:E2:58:61:67:E7
Alias name: mozillacert42.pem
	 SHA1: 85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF
	 SHA256: B6:19:1A:50:D0:C3:97:7F:7D:A9:9B:CD:AA:C8:6A:22:7D:AE:B9:67:9E:C7:0B:A3:B0:C9:D9:22:71:C1:70:D3
Alias name: mozillacert43.pem
	 SHA1: F9:CD:0E:2C:DA:76:24:C1:8F:BD:F0:F0:AB:B6:45:B8:F7:FE:D5:7A
	 SHA256: 50:79:41:C7:44:60:A0:B4:70:86:22:0D:4E:99:32:57:2A:B5:D1:B5:BB:CB:89:80:AB:1C:B1:76:51:A8:44:D2
Alias name: mozillacert44.pem
	 SHA1: 5F:43:E5:B1:BF:F8:78:8C:AC:1C:C7:CA:4A:9A:C6:22:2B:CC:34:C6
	 SHA256: 96:0A:DF:00:63:E9:63:56:75:0C:29:65:DD:0A:08:67:DA:0B:9C:BD:6E:77:71:4A:EA:FB:23:49:AB:39:3D:A3
Alias name: mozillacert45.pem
	 SHA1: 67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0
	 SHA256: C0:A6:F4:DC:63:A2:4B:FD:CF:54:EF:2A:6A:08:2A:0A:72:DE:35:80:3E:2F:F5:FF:52:7A:E5:D8:72:06:DF:D5
Alias name: mozillacert46.pem
	 SHA1: 40:9D:4B:D9:17:B5:5C:27:B6:9B:64:CB:98:22:44:0D:CD:09:B8:89
	 SHA256: EC:C3:E9:C3:40:75:03:BE:E0:91:AA:95:2F:41:34:8F:F8:8B:AA:86:3B:22:64:BE:FA:C8:07:90:15:74:E9:39
Alias name: mozillacert47.pem
	 SHA1: 1B:4B:39:61:26:27:6B:64:91:A2:68:6D:D7:02:43:21:2D:1F:1D:96
	 SHA256: E4:C7:34:30:D7:A5:B5:09:25:DF:43:37:0A:0D:21:6E:9A:79:B9:D6:DB:83:73:A0:C6:9E:B1:CC:31:C7:C5:2A
Alias name: mozillacert48.pem
	 SHA1: A0:A1:AB:90:C9:FC:84:7B:3B:12:61:E8:97:7D:5F:D3:22:61:D3:CC
	 SHA256: 0F:4E:9C:DD:26:4B:02:55:50:D1:70:80:63:40:21:4F:E9:44:34:C9:B0:2F:69:7E:C7:10:FC:5F:EA:FB:5E:38
Alias name: mozillacert49.pem
	 SHA1: 61:57:3A:11:DF:0E:D8:7E:D5:92:65:22:EA:D0:56:D7:44:B3:23:71
	 SHA256: B7:B1:2B:17:1F:82:1D:AA:99:0C:D0:FE:50:87:B1:28:44:8B:A8:E5:18:4F:84:C5:1E:02:B5:C8:FB:96:2B:24
Alias name: mozillacert5.pem
	 SHA1: B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6
	 SHA256: CE:CD:DC:90:50:99:D8:DA:DF:C5:B1:D2:09:B7:37:CB:E2:C1:8C:FB:2C:10:C0:FF:0B:CF:0D:32:86:FC:1A:A2
Alias name: mozillacert50.pem
	 SHA1: 8C:96:BA:EB:DD:2B:07:07:48:EE:30:32:66:A0:F3:98:6E:7C:AE:58
	 SHA256: 35:AE:5B:DD:D8:F7:AE:63:5C:FF:BA:56:82:A8:F0:0B:95:F4:84:62:C7:10:8E:E9:A0:E5:29:2B:07:4A:AF:B2
Alias name: mozillacert51.pem
	 SHA1: FA:B7:EE:36:97:26:62:FB:2D:B0:2A:F6:BF:03:FD:E8:7C:4B:2F:9B
	 SHA256: EA:A9:62:C4:FA:4A:6B:AF:EB:E4:15:19:6D:35:1C:CD:88:8D:4F:53:F3:FA:8A:E6:D7:C4:66:A9:4E:60:42:BB
Alias name: mozillacert52.pem
	 SHA1: 8B:AF:4C:9B:1D:F0:2A:92:F7:DA:12:8E:B9:1B:AC:F4:98:60:4B:6F
	 SHA256: E2:83:93:77:3D:A8:45:A6:79:F2:08:0C:C7:FB:44:A3:B7:A1:C3:79:2C:B7:EB:77:29:FD:CB:6A:8D:99:AE:A7
Alias name: mozillacert53.pem
	 SHA1: 7F:8A:B0:CF:D0:51:87:6A:66:F3:36:0F:47:C8:8D:8C:D3:35:FC:74
	 SHA256: 2D:47:43:7D:E1:79:51:21:5A:12:F3:C5:8E:51:C7:29:A5:80:26:EF:1F:CC:0A:5F:B3:D9:DC:01:2F:60:0D:19
Alias name: mozillacert54.pem
	 SHA1: 03:9E:ED:B8:0B:E7:A0:3C:69:53:89:3B:20:D2:D9:32:3A:4C:2A:FD
	 SHA256: B4:78:B8:12:25:0D:F8:78:63:5C:2A:A7:EC:7D:15:5E:AA:62:5E:E8:29:16:E2:CD:29:43:61:88:6C:D1:FB:D4
Alias name: mozillacert55.pem
	 SHA1: AA:DB:BC:22:23:8F:C4:01:A1:27:BB:38:DD:F4:1D:DB:08:9E:F0:12
	 SHA256: A4:31:0D:50:AF:18:A6:44:71:90:37:2A:86:AF:AF:8B:95:1F:FB:43:1D:83:7F:1E:56:88:B4:59:71:ED:15:57
Alias name: mozillacert56.pem
	 SHA1: F1:8B:53:8D:1B:E9:03:B6:A6:F0:56:43:5B:17:15:89:CA:F3:6B:F2
	 SHA256: 4B:03:F4:58:07:AD:70:F2:1B:FC:2C:AE:71:C9:FD:E4:60:4C:06:4C:F5:FF:B6:86:BA:E5:DB:AA:D7:FD:D3:4C
Alias name: mozillacert57.pem
	 SHA1: D6:DA:A8:20:8D:09:D2:15:4D:24:B5:2F:CB:34:6E:B2:58:B2:8A:58
	 SHA256: F9:E6:7D:33:6C:51:00:2A:C0:54:C6:32:02:2D:66:DD:A2:E7:E3:FF:F1:0A:D0:61:ED:31:D8:BB:B4:10:CF:B2
Alias name: mozillacert58.pem
	 SHA1: 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0
	 SHA256: 5E:DB:7A:C4:3B:82:A0:6A:87:61:E8:D7:BE:49:79:EB:F2:61:1F:7D:D7:9B:F9:1C:1C:6B:56:6A:21:9E:D7:66
Alias name: mozillacert59.pem
	 SHA1: 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54
	 SHA256: 23:99:56:11:27:A5:71:25:DE:8C:EF:EA:61:0D:DF:2F:A0:78:B5:C8:06:7F:4E:82:82:90:BF:B8:60:E8:4B:3C
Alias name: mozillacert6.pem
	 SHA1: 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4
	 SHA256: C3:84:6B:F2:4B:9E:93:CA:64:27:4C:0E:C6:7C:1E:CC:5E:02:4F:FC:AC:D2:D7:40:19:35:0E:81:FE:54:6A:E4
Alias name: mozillacert60.pem
	 SHA1: 3B:C4:9F:48:F8:F3:73:A0:9C:1E:BD:F8:5B:B1:C3:65:C7:D8:11:B3
	 SHA256: BF:0F:EE:FB:9E:3A:58:1A:D5:F9:E9:DB:75:89:98:57:43:D2:61:08:5C:4D:31:4F:6F:5D:72:59:AA:42:16:12
Alias name: mozillacert61.pem
	 SHA1: E0:B4:32:2E:B2:F6:A5:68:B6:54:53:84:48:18:4A:50:36:87:43:84
	 SHA256: 03:95:0F:B4:9A:53:1F:3E:19:91:94:23:98:DF:A9:E0:EA:32:D7:BA:1C:DD:9B:C8:5D:B5:7E:D9:40:0B:43:4A
Alias name: mozillacert62.pem
	 SHA1: A1:DB:63:93:91:6F:17:E4:18:55:09:40:04:15:C7:02:40:B0:AE:6B
	 SHA256: A4:B6:B3:99:6F:C2:F3:06:B3:FD:86:81:BD:63:41:3D:8C:50:09:CC:4F:A3:29:C2:CC:F0:E2:FA:1B:14:03:05
Alias name: mozillacert63.pem
	 SHA1: 89:DF:74:FE:5C:F4:0F:4A:80:F9:E3:37:7D:54:DA:91:E1:01:31:8E
	 SHA256: 3C:5F:81:FE:A5:FA:B8:2C:64:BF:A2:EA:EC:AF:CD:E8:E0:77:FC:86:20:A7:CA:E5:37:16:3D:F3:6E:DB:F3:78
Alias name: mozillacert64.pem
	 SHA1: 62:7F:8D:78:27:65:63:99:D2:7D:7F:90:44:C9:FE:B3:F3:3E:FA:9A
	 SHA256: AB:70:36:36:5C:71:54:AA:29:C2:C2:9F:5D:41:91:16:3B:16:2A:22:25:01:13:57:D5:6D:07:FF:A7:BC:1F:72
Alias name: mozillacert65.pem
	 SHA1: 69:BD:8C:F4:9C:D3:00:FB:59:2E:17:93:CA:55:6A:F3:EC:AA:35:FB
	 SHA256: BC:23:F9:8A:31:3C:B9:2D:E3:BB:FC:3A:5A:9F:44:61:AC:39:49:4C:4A:E1:5A:9E:9D:F1:31:E9:9B:73:01:9A
Alias name: mozillacert66.pem
	 SHA1: DD:E1:D2:A9:01:80:2E:1D:87:5E:84:B3:80:7E:4B:B1:FD:99:41:34
	 SHA256: E6:09:07:84:65:A4:19:78:0C:B6:AC:4C:1C:0B:FB:46:53:D9:D9:CC:6E:B3:94:6E:B7:F3:D6:99:97:BA:D5:98
Alias name: mozillacert67.pem
	 SHA1: D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD
	 SHA256: CB:B5:22:D7:B7:F1:27:AD:6A:01:13:86:5B:DF:1C:D4:10:2E:7D:07:59:AF:63:5A:7C:F4:72:0D:C9:63:C5:3B
Alias name: mozillacert68.pem
	 SHA1: AE:C5:FB:3F:C8:E1:BF:C4:E5:4F:03:07:5A:9A:E8:00:B7:F7:B6:FA
	 SHA256: 04:04:80:28:BF:1F:28:64:D4:8F:9A:D4:D8:32:94:36:6A:82:88:56:55:3F:3B:14:30:3F:90:14:7F:5D:40:EF
Alias name: mozillacert69.pem
	 SHA1: 2F:78:3D:25:52:18:A7:4A:65:39:71:B5:2C:A2:9C:45:15:6F:E9:19
	 SHA256: 25:30:CC:8E:98:32:15:02:BA:D9:6F:9B:1F:BA:1B:09:9E:2D:29:9E:0F:45:48:BB:91:4F:36:3B:C0:D4:53:1F
Alias name: mozillacert7.pem
	 SHA1: AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A
	 SHA256: 14:65:FA:20:53:97:B8:76:FA:A6:F0:A9:95:8E:55:90:E4:0F:CC:7F:AA:4F:B7:C2:C8:67:75:21:FB:5F:B6:58
Alias name: mozillacert70.pem
	 SHA1: 78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C
	 SHA256: 06:3E:4A:FA:C4:91:DF:D3:32:F3:08:9B:85:42:E9:46:17:D8:93:D7:FE:94:4E:10:A7:93:7E:E2:9D:96:93:C0
Alias name: mozillacert71.pem
	 SHA1: 4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C
	 SHA256: 13:63:35:43:93:34:A7:69:80:16:A0:D3:24:DE:72:28:4E:07:9D:7B:52:20:BB:8F:BD:74:78:16:EE:BE:BA:CA
Alias name: mozillacert72.pem
	 SHA1: 47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8B
	 SHA256: 45:14:0B:32:47:EB:9C:C8:C5:B4:F0:D7:B5:30:91:F7:32:92:08:9E:6E:5A:63:E2:74:9D:D3:AC:A9:19:8E:DA
Alias name: mozillacert73.pem
	 SHA1: B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0E
	 SHA256: 2C:E1:CB:0B:F9:D2:F9:E1:02:99:3F:BE:21:51:52:C3:B2:DD:0C:AB:DE:1C:68:E5:31:9B:83:91:54:DB:B7:F5
Alias name: mozillacert74.pem
	 SHA1: 92:5A:8F:8D:2C:6D:04:E0:66:5F:59:6A:FF:22:D8:63:E8:25:6F:3F
	 SHA256: 56:8D:69:05:A2:C8:87:08:A4:B3:02:51:90:ED:CF:ED:B1:97:4A:60:6A:13:C6:E5:29:0F:CB:2A:E6:3E:DA:B5
Alias name: mozillacert75.pem
	 SHA1: D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3A
	 SHA256: 08:29:7A:40:47:DB:A2:36:80:C7:31:DB:6E:31:76:53:CA:78:48:E1:BE:BD:3A:0B:01:79:A7:07:F9:2C:F1:78
Alias name: mozillacert76.pem
	 SHA1: F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7
	 SHA256: 03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7
Alias name: mozillacert77.pem
	 SHA1: 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6
	 SHA256: EB:04:CF:5E:B1:F3:9A:FA:76:2F:2B:B1:20:F2:96:CB:A5:20:C1:B9:7D:B1:58:95:65:B8:1C:B9:A1:7B:72:44
Alias name: mozillacert78.pem
	 SHA1: 29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F
	 SHA256: 0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0:B4:1B
Alias name: mozillacert79.pem
	 SHA1: D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27
	 SHA256: 70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
Alias name: mozillacert8.pem
	 SHA1: 3E:2B:F7:F2:03:1B:96:F3:8C:E6:C4:D8:A8:5D:3E:2D:58:47:6A:0F
	 SHA256: C7:66:A9:BE:F2:D4:07:1C:86:3A:31:AA:49:20:E8:13:B2:D1:98:60:8C:B7:B7:CF:E2:11:43:B8:36:DF:09:EA
Alias name: mozillacert80.pem
	 SHA1: B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BB
	 SHA256: BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23
Alias name: mozillacert81.pem
	 SHA1: 07:E0:32:E0:20:B7:2C:3F:19:2F:06:28:A2:59:3A:19:A7:0F:06:9E
	 SHA256: 5C:58:46:8D:55:F5:8E:49:7E:74:39:82:D2:B5:00:10:B6:D1:65:37:4A:CF:83:A7:D4:A3:2D:B7:68:C4:40:8E
Alias name: mozillacert82.pem
	 SHA1: 2E:14:DA:EC:28:F0:FA:1E:8E:38:9A:4E:AB:EB:26:C0:0A:D3:83:C3
	 SHA256: FC:BF:E2:88:62:06:F7:2B:27:59:3C:8B:07:02:97:E1:2D:76:9E:D1:0E:D7:93:07:05:A8:09:8E:FF:C1:4D:17
Alias name: mozillacert83.pem
	 SHA1: A0:73:E5:C5:BD:43:61:0D:86:4C:21:13:0A:85:58:57:CC:9C:EA:46
	 SHA256: 8C:4E:DF:D0:43:48:F3:22:96:9E:7E:29:A4:CD:4D:CA:00:46:55:06:1C:16:E1:B0:76:42:2E:F3:42:AD:63:0E
Alias name: mozillacert84.pem
	 SHA1: D3:C0:63:F2:19:ED:07:3E:34:AD:5D:75:0B:32:76:29:FF:D5:9A:F2
	 SHA256: 79:3C:BF:45:59:B9:FD:E3:8A:B2:2D:F1:68:69:F6:98:81:AE:14:C4:B0:13:9A:C7:88:A7:8A:1A:FC:CA:02:FB
Alias name: mozillacert85.pem
	 SHA1: CF:9E:87:6D:D3:EB:FC:42:26:97:A3:B5:A3:7A:A0:76:A9:06:23:48
	 SHA256: BF:D8:8F:E1:10:1C:41:AE:3E:80:1B:F8:BE:56:35:0E:E9:BA:D1:A6:B9:BD:51:5E:DC:5C:6D:5B:87:11:AC:44
Alias name: mozillacert86.pem
	 SHA1: 74:2C:31:92:E6:07:E4:24:EB:45:49:54:2B:E1:BB:C5:3E:61:74:E2
	 SHA256: E7:68:56:34:EF:AC:F6:9A:CE:93:9A:6B:25:5B:7B:4F:AB:EF:42:93:5B:50:A2:65:AC:B5:CB:60:27:E4:4E:70
Alias name: mozillacert87.pem
	 SHA1: 5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74
	 SHA256: 51:3B:2C:EC:B8:10:D4:CD:E5:DD:85:39:1A:DF:C6:C2:DD:60:D8:7B:B7:36:D2:B5:21:48:4A:A4:7A:0E:BE:F6
Alias name: mozillacert88.pem
	 SHA1: FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D
	 SHA256: BC:10:4F:15:A4:8B:E7:09:DC:A5:42:A7:E1:D4:B9:DF:6F:05:45:27:E8:02:EA:A9:2D:59:54:44:25:8A:FE:71
Alias name: mozillacert89.pem
	 SHA1: C8:EC:8C:87:92:69:CB:4B:AB:39:E9:8D:7E:57:67:F3:14:95:73:9D
	 SHA256: E3:89:36:0D:0F:DB:AE:B3:D2:50:58:4B:47:30:31:4E:22:2F:39:C1:56:A0:20:14:4E:8D:96:05:61:79:15:06
Alias name: mozillacert9.pem
	 SHA1: F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9
	 SHA256: 76:00:29:5E:EF:E8:5B:9E:1F:D6:24:DB:76:06:2A:AA:AE:59:81:8A:54:D2:77:4C:D4:C0:B2:C0:11:31:E1:B3
Alias name: mozillacert90.pem
	 SHA1: F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC
	 SHA256: 55:92:60:84:EC:96:3A:64:B9:6E:2A:BE:01:CE:0B:A8:6A:64:FB:FE:BC:C7:AA:B5:AF:C1:55:B3:7F:D7:60:66
Alias name: mozillacert91.pem
	 SHA1: 3B:C0:38:0B:33:C3:F6:A6:0C:86:15:22:93:D9:DF:F5:4B:81:C0:04
	 SHA256: C1:B4:82:99:AB:A5:20:8F:E9:63:0A:CE:55:CA:68:A0:3E:DA:5A:51:9C:88:02:A0:D3:A6:73:BE:8F:8E:55:7D
Alias name: mozillacert92.pem
	 SHA1: A3:F1:33:3F:E2:42:BF:CF:C5:D1:4E:8F:39:42:98:40:68:10:D1:A0
	 SHA256: E1:78:90:EE:09:A3:FB:F4:F4:8B:9C:41:4A:17:D6:37:B7:A5:06:47:E9:BC:75:23:22:72:7F:CC:17:42:A9:11
Alias name: mozillacert93.pem
	 SHA1: 31:F1:FD:68:22:63:20:EE:C6:3B:3F:9D:EA:4A:3E:53:7C:7C:39:17
	 SHA256: C7:BA:65:67:DE:93:A7:98:AE:1F:AA:79:1E:71:2D:37:8F:AE:1F:93:C4:39:7F:EA:44:1B:B7:CB:E6:FD:59:95
Alias name: mozillacert94.pem
	 SHA1: 49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99
	 SHA256: 9A:11:40:25:19:7C:5B:B9:5D:94:E6:3D:55:CD:43:79:08:47:B6:46:B2:3C:DF:11:AD:A4:A0:0E:FF:15:FB:48
Alias name: mozillacert95.pem
	 SHA1: DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57
	 SHA256: ED:F7:EB:BC:A2:7A:2A:38:4D:38:7B:7D:40:10:C6:66:E2:ED:B4:84:3E:4C:29:B4:AE:1D:5B:93:32:E6:B2:4D
Alias name: mozillacert96.pem
	 SHA1: 55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1
	 SHA256: FD:73:DA:D3:1C:64:4F:F1:B4:3B:EF:0C:CD:DA:96:71:0B:9C:D9:87:5E:CA:7E:31:70:7A:F3:E9:6D:52:2B:BD
Alias name: mozillacert97.pem
	 SHA1: 85:37:1C:A6:E5:50:14:3D:CE:28:03:47:1B:DE:3A:09:E8:F8:77:0F
	 SHA256: 83:CE:3C:12:29:68:8A:59:3D:48:5F:81:97:3C:0F:91:95:43:1E:DA:37:CC:5E:36:43:0E:79:C7:A8:88:63:8B
Alias name: mozillacert98.pem
	 SHA1: C9:A8:B9:E7:55:80:5E:58:E3:53:77:A7:25:EB:AF:C3:7B:27:CC:D7
	 SHA256: 3E:84:BA:43:42:90:85:16:E7:75:73:C0:99:2F:09:79:CA:08:4E:46:85:68:1F:F1:95:CC:BA:8A:22:9B:8A:76
Alias name: mozillacert99.pem
	 SHA1: F1:7F:6F:B6:31:DC:99:E3:A3:C8:7F:FE:1C:F1:81:10:88:D9:60:33
	 SHA256: 97:8C:D9:66:F2:FA:A0:7B:A7:AA:95:00:D9:C0:2E:9D:77:F2:CD:AD:A6:AD:6B:A7:4A:F4:B9:1C:66:59:3C:50
Alias name: netlockaranyclassgoldfotanusitvany
	 SHA1: 06:08:3F:59:3F:15:A1:04:A0:69:A4:6B:A9:03:D0:06:B7:97:09:91
	 SHA256: 6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98
Alias name: networksolutionscertificateauthority
	 SHA1: 74:F8:A3:C3:EF:E7:B3:90:06:4B:83:90:3C:21:64:60:20:E5:DF:CE
	 SHA256: 15:F0:BA:00:A3:AC:7A:F3:AC:88:4C:07:2B:10:11:A0:77:BD:77:C0:97:F4:01:64:B2:F8:59:8A:BD:83:86:0C
Alias name: oistewisekeyglobalrootgaca
	 SHA1: 59:22:A1:E1:5A:EA:16:35:21:F8:98:39:6A:46:46:B0:44:1B:0F:A9
	 SHA256: 41:C9:23:86:6A:B4:CA:D6:B7:AD:57:80:81:58:2E:02:07:97:A6:CB:DF:4F:FF:78:CE:83:96:B3:89:37:D7:F5
Alias name: oistewisekeyglobalrootgbca
	 SHA1: 0F:F9:40:76:18:D3:D7:6A:4B:98:F0:A8:35:9E:0C:FD:27:AC:CC:ED
	 SHA256: 6B:9C:08:E8:6E:B0:F7:67:CF:AD:65:CD:98:B6:21:49:E5:49:4A:67:F5:84:5E:7B:D1:ED:01:9F:27:B8:6B:D6
Alias name: oistewisekeyglobalrootgcca
	 SHA1: E0:11:84:5E:34:DE:BE:88:81:B9:9C:F6:16:26:D1:96:1F:C3:B9:31
	 SHA256: 85:60:F9:1C:36:24:DA:BA:95:70:B5:FE:A0:DB:E3:6F:F1:1A:83:23:BE:94:86:85:4F:B3:F3:4A:55:71:19:8D
Alias name: quovadisrootca
	 SHA1: DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9
	 SHA256: A4:5E:DE:3B:BB:F0:9C:8A:E1:5C:72:EF:C0:72:68:D6:93:A2:1C:99:6F:D5:1E:67:CA:07:94:60:FD:6D:88:73
Alias name: quovadisrootca1g3
	 SHA1: 1B:8E:EA:57:96:29:1A:C9:39:EA:B8:0A:81:1A:73:73:C0:93:79:67
	 SHA256: 8A:86:6F:D1:B2:76:B5:7E:57:8E:92:1C:65:82:8A:2B:ED:58:E9:F2:F2:88:05:41:34:B7:F1:F4:BF:C9:CC:74
Alias name: quovadisrootca2
	 SHA1: CA:3A:FB:CF:12:40:36:4B:44:B2:16:20:88:80:48:39:19:93:7C:F7
	 SHA256: 85:A0:DD:7D:D7:20:AD:B7:FF:05:F8:3D:54:2B:20:9D:C7:FF:45:28:F7:D6:77:B1:83:89:FE:A5:E5:C4:9E:86
Alias name: quovadisrootca2g3
	 SHA1: 09:3C:61:F3:8B:8B:DC:7D:55:DF:75:38:02:05:00:E1:25:F5:C8:36
	 SHA256: 8F:E4:FB:0A:F9:3A:4D:0D:67:DB:0B:EB:B2:3E:37:C7:1B:F3:25:DC:BC:DD:24:0E:A0:4D:AF:58:B4:7E:18:40
Alias name: quovadisrootca3
	 SHA1: 1F:49:14:F7:D8:74:95:1D:DD:AE:02:C0:BE:FD:3A:2D:82:75:51:85
	 SHA256: 18:F1:FC:7F:20:5D:F8:AD:DD:EB:7F:E0:07:DD:57:E3:AF:37:5A:9C:4D:8D:73:54:6B:F4:F1:FE:D1:E1:8D:35
Alias name: quovadisrootca3g3
	 SHA1: 48:12:BD:92:3C:A8:C4:39:06:E7:30:6D:27:96:E6:A4:CF:22:2E:7D
	 SHA256: 88:EF:81:DE:20:2E:B0:18:45:2E:43:F8:64:72:5C:EA:5F:BD:1F:C2:D9:D2:05:73:07:09:C5:D8:B8:69:0F:46
Alias name: secomevrootca1
	 SHA1: FE:B8:C4:32:DC:F9:76:9A:CE:AE:3D:D8:90:8F:FD:28:86:65:64:7D
	 SHA256: A2:2D:BA:68:1E:97:37:6E:2D:39:7D:72:8A:AE:3A:9B:62:96:B9:FD:BA:60:BC:2E:11:F6:47:F2:C6:75:FB:37
Alias name: secomscrootca1
	 SHA1: 36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7
	 SHA256: E7:5E:72:ED:9F:56:0E:EC:6E:B4:80:00:73:A4:3F:C3:AD:19:19:5A:39:22:82:01:78:95:97:4A:99:02:6B:6C
Alias name: secomscrootca2
	 SHA1: 5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74
	 SHA256: 51:3B:2C:EC:B8:10:D4:CD:E5:DD:85:39:1A:DF:C6:C2:DD:60:D8:7B:B7:36:D2:B5:21:48:4A:A4:7A:0E:BE:F6
Alias name: secomvalicertclass1ca
	 SHA1: E5:DF:74:3C:B6:01:C4:9B:98:43:DC:AB:8C:E8:6A:81:10:9F:E4:8E
	 SHA256: F4:C1:49:55:1A:30:13:A3:5B:C7:BF:FE:17:A7:F3:44:9B:C1:AB:5B:5A:0A:E7:4B:06:C2:3B:90:00:4C:01:04
Alias name: secureglobalca
	 SHA1: 3A:44:73:5A:E5:81:90:1F:24:86:61:46:1E:3B:9C:C4:5F:F5:3A:1B
	 SHA256: 42:00:F5:04:3A:C8:59:0E:BB:52:7D:20:9E:D1:50:30:29:FB:CB:D4:1C:A1:B5:06:EC:27:F1:5A:DE:7D:AC:69
Alias name: securesignrootca11
	 SHA1: 3B:C4:9F:48:F8:F3:73:A0:9C:1E:BD:F8:5B:B1:C3:65:C7:D8:11:B3
	 SHA256: BF:0F:EE:FB:9E:3A:58:1A:D5:F9:E9:DB:75:89:98:57:43:D2:61:08:5C:4D:31:4F:6F:5D:72:59:AA:42:16:12
Alias name: securetrustca
	 SHA1: 87:82:C6:C3:04:35:3B:CF:D2:96:92:D2:59:3E:7D:44:D9:34:FF:11
	 SHA256: F1:C1:B5:0A:E5:A2:0D:D8:03:0E:C9:F6:BC:24:82:3D:D3:67:B5:25:57:59:B4:E7:1B:61:FC:E9:F7:37:5D:73
Alias name: securitycommunicationrootca
	 SHA1: 36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7
	 SHA256: E7:5E:72:ED:9F:56:0E:EC:6E:B4:80:00:73:A4:3F:C3:AD:19:19:5A:39:22:82:01:78:95:97:4A:99:02:6B:6C
Alias name: securitycommunicationrootca2
	 SHA1: 5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74
	 SHA256: 51:3B:2C:EC:B8:10:D4:CD:E5:DD:85:39:1A:DF:C6:C2:DD:60:D8:7B:B7:36:D2:B5:21:48:4A:A4:7A:0E:BE:F6
Alias name: soneraclass1ca
	 SHA1: 07:47:22:01:99:CE:74:B9:7C:B0:3D:79:B2:64:A2:C8:55:E9:33:FF
	 SHA256: CD:80:82:84:CF:74:6F:F2:FD:6E:B5:8A:A1:D5:9C:4A:D4:B3:CA:56:FD:C6:27:4A:89:26:A7:83:5F:32:31:3D
Alias name: soneraclass2ca
	 SHA1: 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27
	 SHA256: 79:08:B4:03:14:C1:38:10:0B:51:8D:07:35:80:7F:FB:FC:F8:51:8A:00:95:33:71:05:BA:38:6B:15:3D:D9:27
Alias name: soneraclass2rootca
	 SHA1: 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27
	 SHA256: 79:08:B4:03:14:C1:38:10:0B:51:8D:07:35:80:7F:FB:FC:F8:51:8A:00:95:33:71:05:BA:38:6B:15:3D:D9:27
Alias name: sslcomevrootcertificationauthorityecc
	 SHA1: 4C:DD:51:A3:D1:F5:20:32:14:B0:C6:C5:32:23:03:91:C7:46:42:6D
	 SHA256: 22:A2:C1:F7:BD:ED:70:4C:C1:E7:01:B5:F4:08:C3:10:88:0F:E9:56:B5:DE:2A:4A:44:F9:9C:87:3A:25:A7:C8
Alias name: sslcomevrootcertificationauthorityrsar2
	 SHA1: 74:3A:F0:52:9B:D0:32:A0:F4:4A:83:CD:D4:BA:A9:7B:7C:2E:C4:9A
	 SHA256: 2E:7B:F1:6C:C2:24:85:A7:BB:E2:AA:86:96:75:07:61:B0:AE:39:BE:3B:2F:E9:D0:CC:6D:4E:F7:34:91:42:5C
Alias name: sslcomrootcertificationauthorityecc
	 SHA1: C3:19:7C:39:24:E6:54:AF:1B:C4:AB:20:95:7A:E2:C3:0E:13:02:6A
	 SHA256: 34:17:BB:06:CC:60:07:DA:1B:96:1C:92:0B:8A:B4:CE:3F:AD:82:0E:4A:A3:0B:9A:CB:C4:A7:4E:BD:CE:BC:65
Alias name: sslcomrootcertificationauthorityrsa
	 SHA1: B7:AB:33:08:D1:EA:44:77:BA:14:80:12:5A:6F:BD:A9:36:49:0C:BB
	 SHA256: 85:66:6A:56:2E:E0:BE:5C:E9:25:C1:D8:89:0A:6F:76:A8:7E:C1:6D:4D:7D:5F:29:EA:74:19:CF:20:12:3B:69
Alias name: staatdernederlandenevrootca
	 SHA1: 76:E2:7E:C1:4F:DB:82:C1:C0:A6:75:B5:05:BE:3D:29:B4:ED:DB:BB
	 SHA256: 4D:24:91:41:4C:FE:95:67:46:EC:4C:EF:A6:CF:6F:72:E2:8A:13:29:43:2F:9D:8A:90:7A:C4:CB:5D:AD:C1:5A
Alias name: staatdernederlandenrootcag3
	 SHA1: D8:EB:6B:41:51:92:59:E0:F3:E7:85:00:C0:3D:B6:88:97:C9:EE:FC
	 SHA256: 3C:4F:B0:B9:5A:B8:B3:00:32:F4:32:B8:6F:53:5F:E1:72:C1:85:D0:FD:39:86:58:37:CF:36:18:7F:A6:F4:28
Alias name: starfieldclass2ca
	 SHA1: AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A
	 SHA256: 14:65:FA:20:53:97:B8:76:FA:A6:F0:A9:95:8E:55:90:E4:0F:CC:7F:AA:4F:B7:C2:C8:67:75:21:FB:5F:B6:58
Alias name: starfieldrootcertificateauthorityg2
	 SHA1: B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0E
	 SHA256: 2C:E1:CB:0B:F9:D2:F9:E1:02:99:3F:BE:21:51:52:C3:B2:DD:0C:AB:DE:1C:68:E5:31:9B:83:91:54:DB:B7:F5
Alias name: starfieldrootg2ca
	 SHA1: B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0E
	 SHA256: 2C:E1:CB:0B:F9:D2:F9:E1:02:99:3F:BE:21:51:52:C3:B2:DD:0C:AB:DE:1C:68:E5:31:9B:83:91:54:DB:B7:F5
Alias name: starfieldservicesrootcertificateauthorityg2
	 SHA1: 92:5A:8F:8D:2C:6D:04:E0:66:5F:59:6A:FF:22:D8:63:E8:25:6F:3F
	 SHA256: 56:8D:69:05:A2:C8:87:08:A4:B3:02:51:90:ED:CF:ED:B1:97:4A:60:6A:13:C6:E5:29:0F:CB:2A:E6:3E:DA:B5
Alias name: starfieldservicesrootg2ca
	 SHA1: 92:5A:8F:8D:2C:6D:04:E0:66:5F:59:6A:FF:22:D8:63:E8:25:6F:3F
	 SHA256: 56:8D:69:05:A2:C8:87:08:A4:B3:02:51:90:ED:CF:ED:B1:97:4A:60:6A:13:C6:E5:29:0F:CB:2A:E6:3E:DA:B5
Alias name: swisssigngoldcag2
	 SHA1: D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61
	 SHA256: 62:DD:0B:E9:B9:F5:0A:16:3E:A0:F8:E7:5C:05:3B:1E:CA:57:EA:55:C8:68:8F:64:7C:68:81:F2:C8:35:7B:95
Alias name: swisssigngoldg2ca
	 SHA1: D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61
	 SHA256: 62:DD:0B:E9:B9:F5:0A:16:3E:A0:F8:E7:5C:05:3B:1E:CA:57:EA:55:C8:68:8F:64:7C:68:81:F2:C8:35:7B:95
Alias name: swisssignplatinumg2ca
	 SHA1: 56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66
	 SHA256: 3B:22:2E:56:67:11:E9:92:30:0D:C0:B1:5A:B9:47:3D:AF:DE:F8:C8:4D:0C:EF:7D:33:17:B4:C1:82:1D:14:36
Alias name: swisssignsilvercag2
	 SHA1: 9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB
	 SHA256: BE:6C:4D:A2:BB:B9:BA:59:B6:F3:93:97:68:37:42:46:C3:C0:05:99:3F:A9:8F:02:0D:1D:ED:BE:D4:8A:81:D5
Alias name: swisssignsilverg2ca
	 SHA1: 9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB
	 SHA256: BE:6C:4D:A2:BB:B9:BA:59:B6:F3:93:97:68:37:42:46:C3:C0:05:99:3F:A9:8F:02:0D:1D:ED:BE:D4:8A:81:D5
Alias name: szafirrootca2
	 SHA1: E2:52:FA:95:3F:ED:DB:24:60:BD:6E:28:F3:9C:CC:CF:5E:B3:3F:DE
	 SHA256: A1:33:9D:33:28:1A:0B:56:E5:57:D3:D3:2B:1C:E7:F9:36:7E:B0:94:BD:5F:A7:2A:7E:50:04:C8:DE:D7:CA:FE
Alias name: teliasonerarootcav1
	 SHA1: 43:13:BB:96:F1:D5:86:9B:C1:4E:6A:92:F6:CF:F6:34:69:87:82:37
	 SHA256: DD:69:36:FE:21:F8:F0:77:C1:23:A1:A5:21:C1:22:24:F7:22:55:B7:3E:03:A7:26:06:93:E8:A2:4B:0F:A3:89
Alias name: thawtepersonalfreemailca
	 SHA1: E6:18:83:AE:84:CA:C1:C1:CD:52:AD:E8:E9:25:2B:45:A6:4F:B7:E2
	 SHA256: 5B:38:BD:12:9E:83:D5:A0:CA:D2:39:21:08:94:90:D5:0D:4A:AE:37:04:28:F8:DD:FF:FF:FA:4C:15:64:E1:84
Alias name: thawtepremiumserverca
	 SHA1: E0:AB:05:94:20:72:54:93:05:60:62:02:36:70:F7:CD:2E:FC:66:66
	 SHA256: 3F:9F:27:D5:83:20:4B:9E:09:C8:A3:D2:06:6C:4B:57:D3:A2:47:9C:36:93:65:08:80:50:56:98:10:5D:BC:E9
Alias name: thawteprimaryrootca
	 SHA1: 91:C6:D6:EE:3E:8A:C8:63:84:E5:48:C2:99:29:5C:75:6C:81:7B:81
	 SHA256: 8D:72:2F:81:A9:C1:13:C0:79:1D:F1:36:A2:96:6D:B2:6C:95:0A:97:1D:B4:6B:41:99:F4:EA:54:B7:8B:FB:9F
Alias name: thawteprimaryrootcag2
	 SHA1: AA:DB:BC:22:23:8F:C4:01:A1:27:BB:38:DD:F4:1D:DB:08:9E:F0:12
	 SHA256: A4:31:0D:50:AF:18:A6:44:71:90:37:2A:86:AF:AF:8B:95:1F:FB:43:1D:83:7F:1E:56:88:B4:59:71:ED:15:57
Alias name: thawteprimaryrootcag3
	 SHA1: F1:8B:53:8D:1B:E9:03:B6:A6:F0:56:43:5B:17:15:89:CA:F3:6B:F2
	 SHA256: 4B:03:F4:58:07:AD:70:F2:1B:FC:2C:AE:71:C9:FD:E4:60:4C:06:4C:F5:FF:B6:86:BA:E5:DB:AA:D7:FD:D3:4C
Alias name: thawteserverca
	 SHA1: 9F:AD:91:A6:CE:6A:C6:C5:00:47:C4:4E:C9:D4:A5:0D:92:D8:49:79
	 SHA256: 87:C6:78:BF:B8:B2:5F:38:F7:E9:7B:33:69:56:BB:CF:14:4B:BA:CA:A5:36:47:E6:1A:23:25:BC:10:55:31:6B
Alias name: trustcenterclass2caii
	 SHA1: AE:50:83:ED:7C:F4:5C:BC:8F:61:C6:21:FE:68:5D:79:42:21:15:6E
	 SHA256: E6:B8:F8:76:64:85:F8:07:AE:7F:8D:AC:16:70:46:1F:07:C0:A1:3E:EF:3A:1F:F7:17:53:8D:7A:BA:D3:91:B4
Alias name: trustcenterclass4caii
	 SHA1: A6:9A:91:FD:05:7F:13:6A:42:63:0B:B1:76:0D:2D:51:12:0C:16:50
	 SHA256: 32:66:96:7E:59:CD:68:00:8D:9D:D3:20:81:11:85:C7:04:20:5E:8D:95:FD:D8:4F:1C:7B:31:1E:67:04:FC:32
Alias name: trustcenteruniversalcai
	 SHA1: 6B:2F:34:AD:89:58:BE:62:FD:B0:6B:5C:CE:BB:9D:D9:4F:4E:39:F3
	 SHA256: EB:F3:C0:2A:87:89:B1:FB:7D:51:19:95:D6:63:B7:29:06:D9:13:CE:0D:5E:10:56:8A:8A:77:E2:58:61:67:E7
Alias name: trustcoreca1
	 SHA1: 58:D1:DF:95:95:67:6B:63:C0:F0:5B:1C:17:4D:8B:84:0B:C8:78:BD
	 SHA256: 5A:88:5D:B1:9C:01:D9:12:C5:75:93:88:93:8C:AF:BB:DF:03:1A:B2:D4:8E:91:EE:15:58:9B:42:97:1D:03:9C
Alias name: trustcorrootcertca1
	 SHA1: FF:BD:CD:E7:82:C8:43:5E:3C:6F:26:86:5C:CA:A8:3A:45:5B:C3:0A
	 SHA256: D4:0E:9C:86:CD:8F:E4:68:C1:77:69:59:F4:9E:A7:74:FA:54:86:84:B6:C4:06:F3:90:92:61:F4:DC:E2:57:5C
Alias name: trustcorrootcertca2
	 SHA1: B8:BE:6D:CB:56:F1:55:B9:63:D4:12:CA:4E:06:34:C7:94:B2:1C:C0
	 SHA256: 07:53:E9:40:37:8C:1B:D5:E3:83:6E:39:5D:AE:A5:CB:83:9E:50:46:F1:BD:0E:AE:19:51:CF:10:FE:C7:C9:65
Alias name: trustisfpsrootca
	 SHA1: 3B:C0:38:0B:33:C3:F6:A6:0C:86:15:22:93:D9:DF:F5:4B:81:C0:04
	 SHA256: C1:B4:82:99:AB:A5:20:8F:E9:63:0A:CE:55:CA:68:A0:3E:DA:5A:51:9C:88:02:A0:D3:A6:73:BE:8F:8E:55:7D
Alias name: ttelesecglobalrootclass2
	 SHA1: 59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9
	 SHA256: 91:E2:F5:78:8D:58:10:EB:A7:BA:58:73:7D:E1:54:8A:8E:CA:CD:01:45:98:BC:0B:14:3E:04:1B:17:05:25:52
Alias name: ttelesecglobalrootclass2ca
	 SHA1: 59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9
	 SHA256: 91:E2:F5:78:8D:58:10:EB:A7:BA:58:73:7D:E1:54:8A:8E:CA:CD:01:45:98:BC:0B:14:3E:04:1B:17:05:25:52
Alias name: ttelesecglobalrootclass3
	 SHA1: 55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1
	 SHA256: FD:73:DA:D3:1C:64:4F:F1:B4:3B:EF:0C:CD:DA:96:71:0B:9C:D9:87:5E:CA:7E:31:70:7A:F3:E9:6D:52:2B:BD
Alias name: ttelesecglobalrootclass3ca
	 SHA1: 55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1
	 SHA256: FD:73:DA:D3:1C:64:4F:F1:B4:3B:EF:0C:CD:DA:96:71:0B:9C:D9:87:5E:CA:7E:31:70:7A:F3:E9:6D:52:2B:BD
Alias name: tubitakkamusmsslkoksertifikasisurum1
	 SHA1: 31:43:64:9B:EC:CE:27:EC:ED:3A:3F:0B:8F:0D:E4:E8:91:DD:EE:CA
	 SHA256: 46:ED:C3:68:90:46:D5:3A:45:3F:B3:10:4A:B8:0D:CA:EC:65:8B:26:60:EA:16:29:DD:7E:86:79:90:64:87:16
Alias name: twcaglobalrootca
	 SHA1: 9C:BB:48:53:F6:A4:F6:D3:52:A4:E8:32:52:55:60:13:F5:AD:AF:65
	 SHA256: 59:76:90:07:F7:68:5D:0F:CD:50:87:2F:9F:95:D5:75:5A:5B:2B:45:7D:81:F3:69:2B:61:0A:98:67:2F:0E:1B
Alias name: twcarootcertificationauthority
	 SHA1: CF:9E:87:6D:D3:EB:FC:42:26:97:A3:B5:A3:7A:A0:76:A9:06:23:48
	 SHA256: BF:D8:8F:E1:10:1C:41:AE:3E:80:1B:F8:BE:56:35:0E:E9:BA:D1:A6:B9:BD:51:5E:DC:5C:6D:5B:87:11:AC:44
Alias name: ucaextendedvalidationroot
	 SHA1: A3:A1:B0:6F:24:61:23:4A:E3:36:A5:C2:37:FC:A6:FF:DD:F0:D7:3A
	 SHA256: D4:3A:F9:B3:54:73:75:5C:96:84:FC:06:D7:D8:CB:70:EE:5C:28:E7:73:FB:29:4E:B4:1E:E7:17:22:92:4D:24
Alias name: ucaglobalg2root
	 SHA1: 28:F9:78:16:19:7A:FF:18:25:18:AA:44:FE:C1:A0:CE:5C:B6:4C:8A
	 SHA256: 9B:EA:11:C9:76:FE:01:47:64:C1:BE:56:A6:F9:14:B5:A5:60:31:7A:BD:99:88:39:33:82:E5:16:1A:A0:49:3C
Alias name: usertrustecc
	 SHA1: D1:CB:CA:5D:B2:D5:2A:7F:69:3B:67:4D:E5:F0:5A:1D:0C:95:7D:F0
	 SHA256: 4F:F4:60:D5:4B:9C:86:DA:BF:BC:FC:57:12:E0:40:0D:2B:ED:3F:BC:4D:4F:BD:AA:86:E0:6A:DC:D2:A9:AD:7A
Alias name: usertrustecccertificationauthority
	 SHA1: D1:CB:CA:5D:B2:D5:2A:7F:69:3B:67:4D:E5:F0:5A:1D:0C:95:7D:F0
	 SHA256: 4F:F4:60:D5:4B:9C:86:DA:BF:BC:FC:57:12:E0:40:0D:2B:ED:3F:BC:4D:4F:BD:AA:86:E0:6A:DC:D2:A9:AD:7A
Alias name: usertrustrsa
	 SHA1: 2B:8F:1B:57:33:0D:BB:A2:D0:7A:6C:51:F7:0E:E9:0D:DA:B9:AD:8E
	 SHA256: E7:93:C9:B0:2F:D8:AA:13:E2:1C:31:22:8A:CC:B0:81:19:64:3B:74:9C:89:89:64:B1:74:6D:46:C3:D4:CB:D2
Alias name: usertrustrsacertificationauthority
	 SHA1: 2B:8F:1B:57:33:0D:BB:A2:D0:7A:6C:51:F7:0E:E9:0D:DA:B9:AD:8E
	 SHA256: E7:93:C9:B0:2F:D8:AA:13:E2:1C:31:22:8A:CC:B0:81:19:64:3B:74:9C:89:89:64:B1:74:6D:46:C3:D4:CB:D2
Alias name: utndatacorpsgcca
	 SHA1: 58:11:9F:0E:12:82:87:EA:50:FD:D9:87:45:6F:4F:78:DC:FA:D6:D4
	 SHA256: 85:FB:2F:91:DD:12:27:5A:01:45:B6:36:53:4F:84:02:4A:D6:8B:69:B8:EE:88:68:4F:F7:11:37:58:05:B3:48
Alias name: utnuserfirstclientauthemailca
	 SHA1: B1:72:B1:A5:6D:95:F9:1F:E5:02:87:E1:4D:37:EA:6A:44:63:76:8A
	 SHA256: 43:F2:57:41:2D:44:0D:62:74:76:97:4F:87:7D:A8:F1:FC:24:44:56:5A:36:7A:E6:0E:DD:C2:7A:41:25:31:AE
Alias name: utnuserfirsthardwareca
	 SHA1: 04:83:ED:33:99:AC:36:08:05:87:22:ED:BC:5E:46:00:E3:BE:F9:D7
	 SHA256: 6E:A5:47:41:D0:04:66:7E:ED:1B:48:16:63:4A:A3:A7:9E:6E:4B:96:95:0F:82:79:DA:FC:8D:9B:D8:81:21:37
Alias name: utnuserfirstobjectca
	 SHA1: E1:2D:FB:4B:41:D7:D9:C3:2B:30:51:4B:AC:1D:81:D8:38:5E:2D:46
	 SHA256: 6F:FF:78:E4:00:A7:0C:11:01:1C:D8:59:77:C4:59:FB:5A:F9:6A:3D:F0:54:08:20:D0:F4:B8:60:78:75:E5:8F
Alias name: valicertclass2ca
	 SHA1: 31:7A:2A:D0:7F:2B:33:5E:F5:A1:C3:4E:4B:57:E8:B7:D8:F1:FC:A6
	 SHA256: 58:D0:17:27:9C:D4:DC:63:AB:DD:B1:96:A6:C9:90:6C:30:C4:E0:87:83:EA:E8:C1:60:99:54:D6:93:55:59:6B
Alias name: verisignc1g1.pem
	 SHA1: 90:AE:A2:69:85:FF:14:80:4C:43:49:52:EC:E9:60:84:77:AF:55:6F
	 SHA256: D1:7C:D8:EC:D5:86:B7:12:23:8A:48:2C:E4:6F:A5:29:39:70:74:2F:27:6D:8A:B6:A9:E4:6E:E0:28:8F:33:55
Alias name: verisignc1g2.pem
	 SHA1: 27:3E:E1:24:57:FD:C4:F9:0C:55:E8:2B:56:16:7F:62:F5:32:E5:47
	 SHA256: 34:1D:E9:8B:13:92:AB:F7:F4:AB:90:A9:60:CF:25:D4:BD:6E:C6:5B:9A:51:CE:6E:D0:67:D0:0E:C7:CE:9B:7F
Alias name: verisignc1g3.pem
	 SHA1: 20:42:85:DC:F7:EB:76:41:95:57:8E:13:6B:D4:B7:D1:E9:8E:46:A5
	 SHA256: CB:B5:AF:18:5E:94:2A:24:02:F9:EA:CB:C0:ED:5B:B8:76:EE:A3:C1:22:36:23:D0:04:47:E4:F3:BA:55:4B:65
Alias name: verisignc1g6.pem
	 SHA1: 51:7F:61:1E:29:91:6B:53:82:FB:72:E7:44:D9:8D:C3:CC:53:6D:64
	 SHA256: 9D:19:0B:2E:31:45:66:68:5B:E8:A8:89:E2:7A:A8:C7:D7:AE:1D:8A:AD:DB:A3:C1:EC:F9:D2:48:63:CD:34:B9
Alias name: verisignc2g1.pem
	 SHA1: 67:82:AA:E0:ED:EE:E2:1A:58:39:D3:C0:CD:14:68:0A:4F:60:14:2A
	 SHA256: BD:46:9F:F4:5F:AA:E7:C5:4C:CB:D6:9D:3F:3B:00:22:55:D9:B0:6B:10:B1:D0:FA:38:8B:F9:6B:91:8B:2C:E9
Alias name: verisignc2g2.pem
	 SHA1: B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9D
	 SHA256: 3A:43:E2:20:FE:7F:3E:A9:65:3D:1E:21:74:2E:AC:2B:75:C2:0F:D8:98:03:05:BC:50:2C:AF:8C:2D:9B:41:A1
Alias name: verisignc2g3.pem
	 SHA1: 61:EF:43:D7:7F:CA:D4:61:51:BC:98:E0:C3:59:12:AF:9F:EB:63:11
	 SHA256: 92:A9:D9:83:3F:E1:94:4D:B3:66:E8:BF:AE:7A:95:B6:48:0C:2D:6C:6C:2A:1B:E6:5D:42:36:B6:08:FC:A1:BB
Alias name: verisignc2g6.pem
	 SHA1: 40:B3:31:A0:E9:BF:E8:55:BC:39:93:CA:70:4F:4E:C2:51:D4:1D:8F
	 SHA256: CB:62:7D:18:B5:8A:D5:6D:DE:33:1A:30:45:6B:C6:5C:60:1A:4E:9B:18:DE:DC:EA:08:E7:DA:AA:07:81:5F:F0
Alias name: verisignc3g1.pem
	 SHA1: A1:DB:63:93:91:6F:17:E4:18:55:09:40:04:15:C7:02:40:B0:AE:6B
	 SHA256: A4:B6:B3:99:6F:C2:F3:06:B3:FD:86:81:BD:63:41:3D:8C:50:09:CC:4F:A3:29:C2:CC:F0:E2:FA:1B:14:03:05
Alias name: verisignc3g2.pem
	 SHA1: 85:37:1C:A6:E5:50:14:3D:CE:28:03:47:1B:DE:3A:09:E8:F8:77:0F
	 SHA256: 83:CE:3C:12:29:68:8A:59:3D:48:5F:81:97:3C:0F:91:95:43:1E:DA:37:CC:5E:36:43:0E:79:C7:A8:88:63:8B
Alias name: verisignc3g3.pem
	 SHA1: 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6
	 SHA256: EB:04:CF:5E:B1:F3:9A:FA:76:2F:2B:B1:20:F2:96:CB:A5:20:C1:B9:7D:B1:58:95:65:B8:1C:B9:A1:7B:72:44
Alias name: verisignc3g4.pem
	 SHA1: 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3A
	 SHA256: 69:DD:D7:EA:90:BB:57:C9:3E:13:5D:C8:5E:A6:FC:D5:48:0B:60:32:39:BD:C4:54:FC:75:8B:2A:26:CF:7F:79
Alias name: verisignc3g5.pem
	 SHA1: 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5
	 SHA256: 9A:CF:AB:7E:43:C8:D8:80:D0:6B:26:2A:94:DE:EE:E4:B4:65:99:89:C3:D0:CA:F1:9B:AF:64:05:E4:1A:B7:DF
Alias name: verisignc4g2.pem
	 SHA1: 0B:77:BE:BB:CB:7A:A2:47:05:DE:CC:0F:BD:6A:02:FC:7A:BD:9B:52
	 SHA256: 44:64:0A:0A:0E:4D:00:0F:BD:57:4D:2B:8A:07:BD:B4:D1:DF:ED:3B:45:BA:AB:A7:6F:78:57:78:C7:01:19:61
Alias name: verisignc4g3.pem
	 SHA1: C8:EC:8C:87:92:69:CB:4B:AB:39:E9:8D:7E:57:67:F3:14:95:73:9D
	 SHA256: E3:89:36:0D:0F:DB:AE:B3:D2:50:58:4B:47:30:31:4E:22:2F:39:C1:56:A0:20:14:4E:8D:96:05:61:79:15:06
Alias name: verisignclass1ca
	 SHA1: CE:6A:64:A3:09:E4:2F:BB:D9:85:1C:45:3E:64:09:EA:E8:7D:60:F1
	 SHA256: 51:84:7C:8C:BD:2E:9A:72:C9:1E:29:2D:2A:E2:47:D7:DE:1E:3F:D2:70:54:7A:20:EF:7D:61:0F:38:B8:84:2C
Alias name: verisignclass1g2ca
	 SHA1: 27:3E:E1:24:57:FD:C4:F9:0C:55:E8:2B:56:16:7F:62:F5:32:E5:47
	 SHA256: 34:1D:E9:8B:13:92:AB:F7:F4:AB:90:A9:60:CF:25:D4:BD:6E:C6:5B:9A:51:CE:6E:D0:67:D0:0E:C7:CE:9B:7F
Alias name: verisignclass1g3ca
	 SHA1: 20:42:85:DC:F7:EB:76:41:95:57:8E:13:6B:D4:B7:D1:E9:8E:46:A5
	 SHA256: CB:B5:AF:18:5E:94:2A:24:02:F9:EA:CB:C0:ED:5B:B8:76:EE:A3:C1:22:36:23:D0:04:47:E4:F3:BA:55:4B:65
Alias name: verisignclass2g2ca
	 SHA1: B3:EA:C4:47:76:C9:C8:1C:EA:F2:9D:95:B6:CC:A0:08:1B:67:EC:9D
	 SHA256: 3A:43:E2:20:FE:7F:3E:A9:65:3D:1E:21:74:2E:AC:2B:75:C2:0F:D8:98:03:05:BC:50:2C:AF:8C:2D:9B:41:A1
Alias name: verisignclass2g3ca
	 SHA1: 61:EF:43:D7:7F:CA:D4:61:51:BC:98:E0:C3:59:12:AF:9F:EB:63:11
	 SHA256: 92:A9:D9:83:3F:E1:94:4D:B3:66:E8:BF:AE:7A:95:B6:48:0C:2D:6C:6C:2A:1B:E6:5D:42:36:B6:08:FC:A1:BB
Alias name: verisignclass3ca
	 SHA1: A1:DB:63:93:91:6F:17:E4:18:55:09:40:04:15:C7:02:40:B0:AE:6B
	 SHA256: A4:B6:B3:99:6F:C2:F3:06:B3:FD:86:81:BD:63:41:3D:8C:50:09:CC:4F:A3:29:C2:CC:F0:E2:FA:1B:14:03:05
Alias name: verisignclass3g2ca
	 SHA1: 85:37:1C:A6:E5:50:14:3D:CE:28:03:47:1B:DE:3A:09:E8:F8:77:0F
	 SHA256: 83:CE:3C:12:29:68:8A:59:3D:48:5F:81:97:3C:0F:91:95:43:1E:DA:37:CC:5E:36:43:0E:79:C7:A8:88:63:8B
Alias name: verisignclass3g3ca
	 SHA1: 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6
	 SHA256: EB:04:CF:5E:B1:F3:9A:FA:76:2F:2B:B1:20:F2:96:CB:A5:20:C1:B9:7D:B1:58:95:65:B8:1C:B9:A1:7B:72:44
Alias name: verisignclass3g4ca
	 SHA1: 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3A
	 SHA256: 69:DD:D7:EA:90:BB:57:C9:3E:13:5D:C8:5E:A6:FC:D5:48:0B:60:32:39:BD:C4:54:FC:75:8B:2A:26:CF:7F:79
Alias name: verisignclass3g5ca
	 SHA1: 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5
	 SHA256: 9A:CF:AB:7E:43:C8:D8:80:D0:6B:26:2A:94:DE:EE:E4:B4:65:99:89:C3:D0:CA:F1:9B:AF:64:05:E4:1A:B7:DF
Alias name: verisignclass3publicprimarycertificationauthorityg4
	 SHA1: 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3A
	 SHA256: 69:DD:D7:EA:90:BB:57:C9:3E:13:5D:C8:5E:A6:FC:D5:48:0B:60:32:39:BD:C4:54:FC:75:8B:2A:26:CF:7F:79
Alias name: verisignclass3publicprimarycertificationauthorityg5
	 SHA1: 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5
	 SHA256: 9A:CF:AB:7E:43:C8:D8:80:D0:6B:26:2A:94:DE:EE:E4:B4:65:99:89:C3:D0:CA:F1:9B:AF:64:05:E4:1A:B7:DF
Alias name: verisignroot.pem
	 SHA1: 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54
	 SHA256: 23:99:56:11:27:A5:71:25:DE:8C:EF:EA:61:0D:DF:2F:A0:78:B5:C8:06:7F:4E:82:82:90:BF:B8:60:E8:4B:3C
Alias name: verisigntsaca
	 SHA1: 20:CE:B1:F0:F5:1C:0E:19:A9:F3:8D:B1:AA:8E:03:8C:AA:7A:C7:01
	 SHA256: CB:6B:05:D9:E8:E5:7C:D8:82:B1:0B:4D:B7:0D:E4:BB:1D:E4:2B:A4:8A:7B:D0:31:8B:63:5B:F6:E7:78:1A:9D
Alias name: verisignuniversalrootca
	 SHA1: 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54
	 SHA256: 23:99:56:11:27:A5:71:25:DE:8C:EF:EA:61:0D:DF:2F:A0:78:B5:C8:06:7F:4E:82:82:90:BF:B8:60:E8:4B:3C
Alias name: verisignuniversalrootcertificationauthority
	 SHA1: 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54
	 SHA256: 23:99:56:11:27:A5:71:25:DE:8C:EF:EA:61:0D:DF:2F:A0:78:B5:C8:06:7F:4E:82:82:90:BF:B8:60:E8:4B:3C
Alias name: xrampglobalca
	 SHA1: B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6
	 SHA256: CE:CD:DC:90:50:99:D8:DA:DF:C5:B1:D2:09:B7:37:CB:E2:C1:8C:FB:2C:10:C0:FF:0B:CF:0D:32:86:FC:1A:A2
Alias name: xrampglobalcaroot
	 SHA1: B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6
	 SHA256: CE:CD:DC:90:50:99:D8:DA:DF:C5:B1:D2:09:B7:37:CB:E2:C1:8C:FB:2C:10:C0:FF:0B:CF:0D:32:86:FC:1A:A2
```

# Usar o AWS WAF para proteger as APIs REST no API Gateway
<a name="apigateway-control-access-aws-waf"></a>

O AWS WAF é um firewall de aplicativo web que ajuda a proteger aplicativos web e APIs contra ataques. Isso permite configurar um conjunto de regras chamado de lista de controle de acesso à web (ACL da web) que permitem, bloqueiam ou contam solicitações da web com base em regras e condições de segurança da web personalizáveis que você define. Para obter mais informações, consulte [Como o AWS WAF funciona](https://docs.aws.amazon.com/waf/latest/developerguide/how-aws-waf-works.html).

É possível usar o AWS WAF para proteger a API REST do API Gateway contra explorações comuns da Web, como injeção de SQL e ataques de cross-site scripting (XSS). Isso pode afetar a disponibilidade e a performance da API, comprometer a segurança ou consumir recursos excessivos. Por exemplo, você pode criar regras para permitir ou bloquear solicitações de intervalos de endereços IP especificados, solicitações de blocos CIDR, solicitações originárias de um país ou região específico, solicitações que contenham código SQL mal-intencionado ou solicitações que contenham script mal-intencionado. 

Você também pode criar regras que correspondam a uma string especificada ou um padrão de expressão regular em cabeçalhos HTTP, método, URI, string de consulta e o corpo da solicitação (limitados aos primeiros 64 KB). Além disso, você pode criar regras para bloquear ataques de agentes de usuário específicos, bad bots e descarte de conteúdo. Por exemplo, podem ser utilizadas regras baseadas em taxa para especificar o número de solicitações da web que são permitidas por cada IP do cliente no final de um período de cinco minutos em atualização contínua. 

**Importante**  
O AWS WAF é a primeira linha de defesa contra explorações da web. Quando o AWS WAF está habilitado em uma API, as regras do AWS WAF são avaliadas antes de outros recursos de controle de acesso, como [políticas de recursos](apigateway-resource-policies.md), [políticas do IAM](permissions.md), [autorizadores do Lambda](apigateway-use-lambda-authorizer.md) e [autorizadores do Amazon Cognito](apigateway-integrate-with-cognito.md). Por exemplo, se o AWS WAF bloquear o acesso de um bloco CIDR que uma política de recurso permite, o AWS WAF terá precedência e a política de recurso não será avaliada.

Para habilitar o AWS WAF para sua API, você precisa fazer o seguinte:

1. Use o console do AWS WAF, o AWS SDK ou a CLI para criar uma ACL da web que contenha a combinação desejada de regras gerenciadas do AWS WAF e suas próprias regras personalizadas. Para saber mais, consulte [Getting Started with AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started.html) e [Web access control lists (web ACLs)](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl.html).
**Importante**  
O API Gateway exige uma ACL da web do AWS WAFV2 para uma aplicação regional ou uma ACL da web do AWS WAF Classic regional.

1. Associar uma ACL da web do AWS WAF a um estágio de API. É possível fazer isso usando o console do AWS WAF, o AWS SDK ou a CLI ou usando o console do API Gateway.

## Associar uma ACL da web do AWS WAF a um estágio da API do API Gateway usando o console do API Gateway
<a name="apigateway-control-access-aws-waf-console"></a>

Para usar o console do API Gateway a fim de associar uma ACL da web do AWS WAF a um estágio da API do API Gateway existente, use as seguintes etapas:

1. Inicie uma sessão no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Escolha uma API existente ou crie uma nova.

1. No painel de navegação principal, selecione **Estágios** e escolha um estágio.

1. Na seção **Detalhes do estágio**, selecione **Editar**.

1. Em **Firewall de aplicativo Web (AWS WAF)**, selecione sua ACL da web.

   Se você estiver usando o AWS WAFV2, selecione uma ACL da web do AWS WAFV2 para uma aplicação regional. A ACL da web e quaisquer outros recursos do AWS WAFV2 que ela usa devem estar localizados na mesma região que sua API.

   Se você estiver usando o AWS WAF Classic regional, selecione a ACL da web regional.

1. Escolha **Salvar alterações**.

## Associar uma ACL da web do AWS WAF a um estágio da API do API Gateway usando a AWS CLI
<a name="apigateway-control-access-aws-waf-awscli"></a>

O comando [associate-web-acl](https://docs.aws.amazon.com/cli/latest/reference/wafv2/associate-web-acl.html) indicado abaixo associa uma ACL da web do AWS WAFV2 para uma aplicação regional a um estágio de API do API Gateway existente:

```
aws wafv2 associate-web-acl \
--web-acl-arn  arn:aws:wafv2:{region}:111122223333:regional/webacl/test-cli/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \
--resource-arn arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod
```

O comando [associate-web-acl](https://docs.aws.amazon.com/cli/latest/reference/waf-regional/associate-web-acl.html) indicado abaixo associa uma ACL da web do AWS WAF Classic regional a um estágio de API do API Gateway existente:

```
aws waf-regional associate-web-acl \
--web-acl-id 'aabc123a-fb4f-4fc6-becb-2b00831cadcf' \
--resource-arn 'arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod'
```

## Associar uma ACL da web do AWS WAF a um estágio da API usando a API REST do AWS WAF
<a name="apigateway-control-access-aws-waf-api"></a>

Para usar a API REST do AWS WAFV2 a fim de associar uma ACL da web do AWS WAFV2 de uma aplicação regional a um estágio da API do API Gateway, use o comando [AssociateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociateWebACL.html), como no seguinte exemplo:

```
import boto3
 
wafv2 = boto3.client('wafv2')

wafv2.associate_web_acl(
    WebACLArn='arn:aws:wafv2:{region}:111122223333:regional/webacl/test/abc6aa3b-fc33-4841-b3db-0ef3d3825b25',
    ResourceArn='arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod'
)
```

Para usar a API REST do AWS WAF a fim de associar uma ACL da web do AWS WAF Classic regional a um estágio da API do API Gateway, use o comando [AssociateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_wafRegional_AssociateWebACL.html), como no seguinte exemplo:

```
import boto3
 
waf = boto3.client('waf-regional')
 
waf.associate_web_acl(
    WebACLId='aabc123a-fb4f-4fc6-becb-2b00831cadcf',
    ResourceArn='arn:aws:apigateway:{region}::/restapis/4wk1k4onj3/stages/prod'
)
```

# Controle de utilização das solicitações das APIs REST para ter um melhor throughput no API Gateway
<a name="api-gateway-request-throttling"></a>

Você pode configurar o controle de utilização e cotas para as suas APIs para ajudar a protegê-las da sobrecarga de numerosas solicitações. Os controles de utilização e as cotas são aplicados de acordo com o melhor esforço e devem ser considerados alvos, e não limites máximos garantidos de solicitações.

O API Gateway controla a utilização das solicitações para a sua API usando o algoritmo do bucket de token, em que um token equivale a uma solicitação. Especificamente, o API Gateway analisa a taxa e uma intermitência de envios de solicitações de todas as APIs na sua conta, por região. No algoritmo do bucket de token, uma intermitência pode permitir a saturação predefinida desses limites, mas há alguns casos em que outros fatores também podem exceder tais limites.

Quando os envios de solicitações excederem a taxa de solicitação de estado fixo e os limites de intermitência, o API Gateway iniciará o controle de utilização de solicitações. Neste momento, pode ser que os clientes recebam respostas de erro `429 Too Many Requests`. Ao capturar essas exceções, o cliente poderá reenviar as solicitações com falha de uma forma que restrinja as taxas.

Como desenvolvedor de APIs, você pode definir os limites alvo para estágios ou métodos de API particulares para melhorar a performance geral em todas as APIs na sua conta. Como alternativa, você pode habilitar planos de uso para configurar controles de utilização aos envios de solicitações do cliente com base nas cotas e taxas de solicitação especificadas.

**Topics**
+ [Como as configurações de controle de utilização são aplicadas no API Gateway](#apigateway-how-throttling-limits-are-applied)
+ [Controle de utilização no nível da conta por região](#apig-request-throttling-account-level-limits)
+ [Configuração de alvos de controle de utilização no nível da API e no nível do estágio em um plano de uso](#apigateway-api-level-throttling-in-usage-plan)
+ [Configurar destinos de controle de utilização no nível do estágio](#apigateway-stage-level-throttling)
+ [Configuração de alvos de controle de utilização no nível do método em um plano de uso](#apigateway-method-level-throttling-in-usage-plan)

## Como as configurações de controle de utilização são aplicadas no API Gateway
<a name="apigateway-how-throttling-limits-are-applied"></a>

Antes de definir as configurações de controle de utilização e cotas para a API, é útil entender os tipos de configurações relacionadas ao controle de utilização para a API e como o API Gateway as aplica.

O Amazon API Gateway fornece quatro tipos básicos de configurações relacionadas ao controle de utilização:
+ Os *limites de controle de utilização da AWS* são aplicados em todas as contas e clientes de uma região. Essas configurações de limite existem para impedir que sua API e sua conta sejam sobrecarregadas com muitas solicitações. Tais limites são definidos pela AWS e não poderão ser alterados por um cliente.
+ Os limites por conta são aplicados a todas as APIs em uma conta em uma região especificada. O limite de taxas no nível da conta pode ser aumentado por meio de uma solicitação; é possível obter limites mais altos com APIs com tempos limite mais curtos e cargas úteis menores. Para solicitar um aumento nos limites de controle de utilização no nível da conta por região, entre em contato com a [Central de Suporte da AWS](https://console.aws.amazon.com/support/home#/). Para obter mais informações, consulte [Cotas do Amazon API Gateway](limits.md). Observe que tais limites não podem ser superiores aos limites de controle de utilização da AWS.
+ Os limites de controle de utilização por API e por estágio são aplicados no nível do método da API para um estágio. Você pode definir as mesmas configurações para todos os métodos ou configurações de controle de utilização distintas para cada método. Observe que tais limites não podem ser superiores aos limites de controle de utilização da AWS.
+ Os *limites de controle de utilização por cliente* são aplicados aos clientes que usam chaves de API associadas ao seu plano de uso como identificador de cliente. Observe que tais limites não podem ser superiores aos limites por conta.

O API Gateway aplica as configurações relacionadas ao controle de utilização na seguinte ordem:

1. [Limites de controle de utilização por cliente ou por método](#apigateway-method-level-throttling-in-usage-plan) que você define para um estágio de API em um [plano de uso](api-gateway-create-usage-plans.md#api-gateway-usage-plan-create)

1. [Os limites de controle de utilização por método que você define para um estágio da API](set-up-stages.md#how-to-stage-settings)

1. [Controle de utilização no nível da conta por região](#apig-request-throttling-account-level-limits)

1. Controle de utilização regional da AWS

## Controle de utilização no nível da conta por região
<a name="apig-request-throttling-account-level-limits"></a>

Por padrão, o API Gateway controla a utilização das solicitações de estado fixo por segundo (RPS) em todas as APIs de uma conta da AWS, por região. Ele também limita a intermitência (ou seja, o tamanho máximo do bucket) em todas as APIs de uma conta da AWS, por região. No API Gateway, o limite de intermitência representa o número máximo alvo de envios simultâneos de solicitações que ele fará antes de retornar respostas de erro `429 Too Many Requests`. Para obter mais informações sobre cotas de controle de utilização, consulte [Cotas do Amazon API Gateway](limits.md).

## Configuração de alvos de controle de utilização no nível da API e no nível do estágio em um plano de uso
<a name="apigateway-api-level-throttling-in-usage-plan"></a>

Em um [plano de uso](api-gateway-api-usage-plans.md), é possível definir um destino de controle de utilização por método para todos os métodos em nível de API ou de estágio. É possível especificar uma *taxa de controle de utilização*, que é a taxa, em solicitações por segundo, em que os tokens são adicionados ao bucket do token. Você também pode especificar uma *expansão do controle de utilização*, que é a capacidade do bucket do token.

Você pode usar a AWS CLI, SDKs e o Console de gerenciamento da AWS para criar um plano de uso. Para saber mais sobre como criar um plano de uso, consulte [Usar planos e chaves de API para APIs REST no APIs Gateway](api-gateway-api-usage-plans.md). 

## Configurar destinos de controle de utilização no nível do estágio
<a name="apigateway-stage-level-throttling"></a>

É possível usar a AWS CLI, os SDKs e o Console de gerenciamento da AWS para criar destinos de controle de utilização no nível de estágio.

Para saber mais sobre como usar o Console de gerenciamento da AWS para criar destinos de controle de utilização no nível de estágio, consulte [Modifique as configurações de armazenamento.](set-up-stages.md#how-to-stage-settings). Para saber mais sobre como usar a AWS CLI para criar destinos de controle de utilização no nível de estágio, consulte [create-stage.](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-stage.html)

## Configuração de alvos de controle de utilização no nível do método em um plano de uso
<a name="apigateway-method-level-throttling-in-usage-plan"></a>

É possível definir alvos de controle de utilização adicionais no nível do método em **Usage Plans** (Planos de uso), conforme exibido em [Criar um plano de uso](api-gateway-create-usage-plans.md#api-gateway-usage-plan-create). No console do API Gateway, isso é definido especificando `Resource=<resource>`, `Method=<method>` na configuração **Configure Method Throttling (Configurar limitação de método)**. Por exemplo, no [caso de PetStore](api-gateway-create-api-step-by-step.md), você pode especificar `Resource=/pets`, `Method=GET`.

# APIs REST privadas no API Gateway
<a name="apigateway-private-apis"></a>

Uma API privada é uma API REST que só pode ser chamada de dentro de uma Amazon VPC. Você pode acessar a API usando um [endpoint de interface da VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html), que é uma interface de rede de endpoint que você cria na VPC. Os endpoints de interface são desenvolvidos pelo AWS PrivateLink, uma tecnologia que permite acessar de forma privada os serviços da AWS usando endereços IP privados.

Você também pode usar o Direct Connect para estabelecer uma conexão de uma rede on-premises para o Amazon VPC, depois acessar sua API privada nessa conexão. Em todos os casos, o tráfego para a API privada sempre usa conexões seguras e é isolado da internet pública. O tráfego não deixa a rede da Amazon.

## Práticas recomendadas para APIs privadas
<a name="apigateway-private-api-best-practices"></a>

Recomendamos que você use as seguintes práticas recomendadas ao criar uma API privada:
+ Use um único endpoint da VPC para acessar várias APIs privadas. Isso reduz o número de endpoints da VPC que você pode precisar.
+ Associe seu endpoint da VPC à sua API. Isso cria um registro DNS de alias do Route 53 e simplifica a invocação da API privada.
+ Ative o DNS privado para sua VPC. Ao ativar o DNS privado para a VPC, é possível invocar a API em uma VPC sem transmitir o cabeçalho `Host` ou `x-apigw-api-id`.

  Se você ativar a opção de DNS privado, não poderá acessar o endpoint padrão para APIs públicas. Se quiser acessar o endpoint padrão para APIs públicas, você pode desativar o DNS privado, criar uma zona hospedada privada para cada API privada na VPC e, depois, provisionar os registros necessários no Route 53. Isso permite que a API privada seja resolvida e que você, ainda assim, invoque o endpoint padrão público da VPC. Para obter mais informações, consulte [Criar uma zona hospedada privada](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html).
+ Restrinja o acesso à sua API privada para VPCs ou endpoints da VPC específicos. Adicione condições `aws:SourceVpc` ou `aws:SourceVpce` à política de recursos da API para restringir o acesso.
+ Para obter o perímetro de dados mais seguro, você pode criar uma política de endpoint da VPC. Isso controla o acesso aos endpoints da VPC que podem invocar sua API privada.

## Considerações sobre APIs privadas
<a name="apigateway-private-api-considerations"></a>

As considerações a seguir podem afetar seu uso de APIs privadas:
+ Somente as APIs REST são compatíveis.
+ Não é possível converter uma API privada para uma API otimizada para fronteiras.
+ As APIs privadas são compatíveis somente com TLS 1.2. Versões anteriores do TLS não são compatíveis.
+ Se você fizer uma solicitação usando o protocolo HTTP/2, ela será forçada a usar o protocolo HTTP/1.1.
+ Não é possível definir o tipo de endereço IP para APIs privadas para permitir que somente endereços IPv4 invoquem sua API privada. Somente pilha dupla é compatível. Para obter mais informações, consulte [Tipos de endereço IP para APIs REST no API Gateway](api-gateway-ip-address-type.md).
+ Para enviar tráfego usando sua API privada, é possível usar todos os tipos de endereço IP compatíveis com a Amazon VPC. Você pode enviar tráfego de pilha dupla e IPv6 configurando as definições no endpoint da VPC. Não é possível modificar isso usando o API Gateway. Para obter mais informações, consulte [Adicionar suporte a IPv6 para sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html).
+ Os VPC endpoints para APIs privadas estão sujeitos às mesmas limitações dos outros VPC endpoints de interface. Para obter mais informações, consulte [Access an AWS using an interface VPC endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) (Acessar um por meio de um endpoint da VPC de interface) no *AWS PrivateLink Guia*. Para obter mais informações sobre como usar o API Gateway com VPCs e sub-redes compartilhadas, consulte [Sub-redes compartilhadas](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#interface-endpoint-shared-subnets) no *Guia do AWS PrivateLink*.

## Próximas etapas para APIs privadas
<a name="apigateway-private-api-next-steps"></a>

 Para saber como criar uma API privada e associar um endpoint da VPC, consulte [Criar uma API privada](apigateway-private-api-create.md). Para seguir um tutorial em que você cria dependências no CloudFormation e uma API privada no Console de gerenciamento da AWS, consulte [Tutorial: Crie uma API REST privada](private-api-tutorial.md).

# Criar uma API privada
<a name="apigateway-private-api-create"></a>

Antes de criar uma API privada, crie um endpoint da VPC para o API Gateway. Depois, crie a API privada e anexe uma política de recursos a ela. Opcionalmente, você pode associar seu endpoint da VPC à API privada para simplificar a invocação da API. Por fim, implante a API.

Os procedimentos a seguir descrevem como fazer isso. Você pode criar uma API REST privada usando o Console de gerenciamento da AWS, a AWS CLI ou um AWS SDK. 

## Pré-requisitos
<a name="apigateway-private-api-create-interface-vpc-prerequisites"></a>

Para seguir essas etapas, é necessário ter uma VPC totalmente configurada. Para saber como criar uma VPC, consulte [Create a VPC only](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html#create-vpc-only) no *Guia do usuário do Amazon VPC*. Para seguir todas as etapas recomendadas ao criar uma VPC, habilite o DNS privado. Dessa forma, você pode invocar a API em uma VPC sem precisar passar o host ou o cabeçalho `x-apigw-api-id`.

Para habilitar o DNS privado, os atributos `enableDnsSupport` e `enableDnsHostnames` da sua VPC deverão ser definidos como `true`. Para obter mais informações, consulte [DNS Support in Your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) e [Updating DNS Support for Your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating).

## Etapa 1: Criar um endpoint da VPC para o API Gateway em sua VPC
<a name="apigateway-private-api-create-interface-vpc-endpoint"></a>

O procedimento a seguir mostra como criar um endpoint da VPC para o API Gateway. Para criar um endpoint da VPC para o API Gateway, especifique o domínio `execute-api` para a Região da AWS onde você está criando a API privada. O domínio `execute-api` é o serviço de componente do API Gateway para a execução da API.

Ao criar um endpoint da VPC para o API Gateway, especifique as configurações de DNS. Se você desativar o DNS privado, só poderá acessar a API usando o DNS público. Para obter mais informações, consulte [Problema: não consigo me conectar à minha API pública por um endpoint da VPC do API Gateway](#apigateway-private-api-troubleshooting-public-access).

------
#### [ Console de gerenciamento da AWS ]

**Como criar um endpoint de interface da VPC para o API Gateway**

1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No menu à de navegação, em **Nuvem privada virtual**, escolha **Endpoints**.

1. Escolha **Criar endpoint**.

1. (Opcional) Em **Etiqueta de nome**, insira um nome para ajudar a identificar o endpoint da VPC.

1. Em **Categoria do serviço**, escolha **Serviços do AWS**.

1. Em **Serviços**, na barra de pesquisa, insira **execute-api**. Depois, escolha o endpoint de serviço do API Gateway na Região da AWS em que você criará a API. O nome do serviço deve ser semelhante a `com.amazonaws.us-east-1.execute-api` e o **Tipo** deve ser **Interface**.

1. Para **VPC**, escolha a VPC na qual você deseja criar o endpoint.

1. (Opcional) Para desativar a opção **Habilitar nome DNS privado**, escolha **Configurações adicionais** e desmarque a opção **Habilitar nome DNS privado**.

1. Em **Sub-redes**, selecione as zonas de disponibilidade em que criou as interfaces de rede do endpoint. Para melhorar a disponibilidade da sua API, escolha várias sub-redes.

1. Em **Security group (Grupo de segurança)**, selecione os grupos de segurança a serem associados às interfaces de rede do VPC endpoint.

   O security group que você escolher deve ser definido para permitir o tráfego de entrada de HTTPS na porta TCP 443 a partir de um intervalo de IP na sua VPC ou de outro security group na sua VPC.

1. Em **Política**, siga um destes procedimentos:
   + Se você não criou a API privada ou não quer configurar uma política de endpoint da VPC personalizada, escolha **Acesso total**.
   + Se você já criou uma API privada e quer configurar uma política de endpoint da VPC personalizada, é possível inserir uma política de endpoint da VPC personalizada. Para obter mais informações, consulte [Usar políticas de VPC endpoint para APIs privadas no API Gateway](apigateway-vpc-endpoint-policies.md).

   Você pode atualizar a política de endpoint da VPC depois de criar o endpoint da VPC. Para obter mais informações, consulte [Update a VPC endpoint policy](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy).

1. Escolha **Criar endpoint**.

1. Copie o ID de endpoint da VPC resultante, pois talvez precise usá-lo em etapas futuras.

------
#### [ AWS CLI ]

O comando [create-vpc-endpoint](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc-endpoint.html) indicado abaixo pode ser usado para criar um endpoint da VPC:

```
aws ec2 create-vpc-endpoint \
    --vpc-id vpc-1a2b3c4d \
    --vpc-endpoint-type Interface \
    --service-name com.amazonaws.us-east-1.execute-api \
    --subnet-ids subnet-7b16de0c \
    --security-group-id sg-1a2b3c4d
```

Copie o ID de endpoint da VPC resultante, pois talvez precise usá-lo em etapas futuras.

------

## Etapa 2: Crie uma API privada
<a name="apigateway-private-api-create-using-console"></a>

Depois de criar o endpoint da VPC, crie uma API REST privada. O procedimento a seguir mostra como criar uma API privada. 

------
#### [ Console de gerenciamento da AWS ]

**Para criar uma API privada**

1. Inicie uma sessão no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Selecione **Create API** (Criar API).

1. Em **REST API**, escolha **Build** (Criar).

1. Em **Nome**, insira um nome.

1.  (Opcional) Em **Description (Descrição)**, insira uma descrição. 

1. Em **Tipo de endpoint de API**, escolha **Privado**.

1. (Opcional) Em **ID do endpoint da VPC**, insira um ID de endpoint da VPC.

   Se você associar um ID de endpoint da VPC à sua API privada, poderá invocar a API de dentro da VPC sem substituir um cabeçalho `Host` ou transmitir um `x-apigw-api-id header`. Para obter mais informações, consulte [(Opcional) Associar ou desassociar um endpoint da VPC a uma API privada](#associate-private-api-with-vpc-endpoint).

1. Em **Tipo de endereço IP**, escolha **Dualstack**.

1. Selecione **Criar API**.

 Depois de concluir as etapas anteriores, você poderá seguir as mesmas instruções em [Começar a usar o console da API REST](getting-started-rest-new-console.md) para configurar métodos e integrações para essa API, mas não poderá implantar a API. Para implantar a API, siga a etapa 3 e anexe uma política de recursos à API. 

------
#### [ AWS CLI ]

O comando [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html) indicado abaixo cria uma API privada:

```
aws apigateway create-rest-api \
        --name 'Simple PetStore (AWS CLI, Private)' \
        --description 'Simple private PetStore API' \
        --region us-west-2 \
        --endpoint-configuration '{ "types": ["PRIVATE"], "ipAddressType": "dualstack" }'
```

Uma chamada bem-sucedida retorna uma saída semelhante ao seguinte:

```
{
    "createdDate": "2017-10-13T18:41:39Z",
    "description": "Simple private PetStore API",
    "endpointConfiguration": {
        "types": [
            "PRIVATE"
        ],
        "ipAddressType": "dualstack"
    },
    "id": "0qzs2sy7bh",
    "name": "Simple PetStore (AWS CLI, Private)"
}
```

 Depois de concluir as etapas anteriores, você poderá seguir as mesmas instruções em [Tutorial: como criar uma API REST usando SDKs da AWS ou a AWS CLI](api-gateway-create-api-cli-sdk.md) para configurar métodos e integrações para essa API, mas não poderá implantar a API. Para implantar a API, siga a etapa 3 e anexe uma política de recursos à API. 

------
#### [ SDK JavaScript v3 ]

O seguinte exemplo mostra como criar uma API privada usando o AWS SDK para JavaScript v3:

```
import {APIGatewayClient, CreateRestApiCommand} from "@aws-sdk/client-api-gateway";
const apig = new APIGatewayClient({region:"us-east-1"});

const input = { // CreateRestApiRequest
  name: "Simple PetStore (JavaScript v3 SDK, private)", // required
  description: "Demo private API created using the AWS SDK for JavaScript v3",
  version: "0.00.001",
  endpointConfiguration: { // EndpointConfiguration
    types: [ "PRIVATE"],
  },  
};

export const handler = async (event) => {
const command = new CreateRestApiCommand(input);
try {
  const result = await apig.send(command);
  console.log(result);
} catch (err){
  console.error(err)
 }
};
```

Uma chamada bem-sucedida retorna uma saída semelhante ao seguinte:

```
{
  apiKeySource: 'HEADER',
  createdDate: 2024-04-03T17:56:36.000Z,
  description: 'Demo private API created using the AWS SDK for JavaScript v3',
  disableExecuteApiEndpoint: false,
  endpointConfiguration: { types: [ 'PRIVATE' ] },
  id: 'abcd1234',
  name: 'Simple PetStore (JavaScript v3 SDK, private)',
  rootResourceId: 'efg567',
  version: '0.00.001'
}
```

 Depois de concluir as etapas anteriores, você poderá seguir as mesmas instruções em [Tutorial: como criar uma API REST usando SDKs da AWS ou a AWS CLI](api-gateway-create-api-cli-sdk.md) para configurar métodos e integrações para essa API, mas não poderá implantar a API. Para implantar a API, siga a etapa 3 e anexe uma política de recursos à API. 

------
#### [ Python SDK ]

O seguinte exemplo mostra como criar uma API privada usando o AWS SDK para Python:

```
import json
import boto3
import logging

logger = logging.getLogger()
apig = boto3.client('apigateway')

def lambda_handler(event, context):
    try:
      result = apig.create_rest_api(
      name='Simple PetStore (Python SDK, private)',
      description='Demo private API created using the AWS SDK for Python',
      version='0.00.001',
      endpointConfiguration={
          'types': [
             'PRIVATE',
          ],
      },
      )
    except botocore.exceptions.ClientError as error:
            logger.exception("Couldn't create private API %s.", error)
            raise
    attribute=["id", "name", "description", "createdDate", "version", "apiKeySource", "endpointConfiguration"]
    filtered_data ={key:result[key] for key in attribute}
    result = json.dumps(filtered_data, default=str, sort_keys='true')
    return result
```

Uma chamada bem-sucedida retorna uma saída semelhante ao seguinte:

```
"{\"apiKeySource\": \"HEADER\", \"createdDate\": \"2024-04-03 17:27:05+00:00\", \"description\": \"Demo private API created using the AWS SDK for \", \"endpointConfiguration\": {\"types\": [\"PRIVATE\"]}, \"id\": \"abcd1234\", \"name\": \"Simple PetStore (Python SDK, private)\", \"version\": \"0.00.001\"}"
```

 Depois de concluir as etapas anteriores, você poderá seguir as mesmas instruções em [Tutorial: como criar uma API REST usando SDKs da AWS ou a AWS CLI](api-gateway-create-api-cli-sdk.md) para configurar métodos e integrações para essa API, mas não poderá implantar a API. Para implantar a API, siga a etapa 3 e anexe uma política de recursos à API. 

------

## Etapa 3: Configurar uma política de recursos para uma API privada
<a name="apigateway-private-api-set-up-resource-policy"></a>

Sua API privada atual está inacessível para todas as VPCs. Use uma política de recursos para conceder às suas VPCs e endpoints da VPC acesso às suas APIs privadas. É possível conceder acesso a um endpoint da VPC em qualquer conta da AWS.

Sua política de recursos deve conter as condições `aws:SourceVpc` ou `aws:SourceVpce` para restringir o acesso. Recomendamos que você identifique VPCs e endpoints da VPC específicos e não crie uma política de recursos que permita acesso a todas as VPCs e endpoints da VPC.

O procedimento a seguir mostra como anexar uma política de recursos à sua API.

------
#### [ Console de gerenciamento da AWS ]

1. Inicie uma sessão no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Escolha uma API REST.

1. No painel de navegação principal, escolha **Política de recursos**.

1. Escolha **Criar política**.

1. Escolha **Selecionar um modelo** e selecione **Source VPC** (VPC de origem).

1. Substitua `{{vpcID}}` (incluindo as chaves) pelo ID da VPC.

1. Escolha **Save changes**.

------
#### [ AWS CLI ]

O comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) indicado abaixo anexa uma política de recursos a uma API existente:

```
aws apigateway update-rest-api \
    --rest-api-id a1b2c3 \
    --patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'
```

------

Talvez você também queira controlar quais recursos têm acesso ao seu endpoint da VPC. Para controlar quais recursos têm acesso ao endpoint da VPC, anexe uma política de endpoint ao endpoint da VPC. Para obter mais informações, consulte [Usar políticas de VPC endpoint para APIs privadas no API Gateway](apigateway-vpc-endpoint-policies.md).

## (Opcional) Associar ou desassociar um endpoint da VPC a uma API privada
<a name="associate-private-api-with-vpc-endpoint"></a>

Quando você associa um endpoint da VPC a uma API privada, o API Gateway gera um registro DNS de alias do Route 53. Você pode usar esse registro para invocar suas APIs privadas da mesma forma como o faz para suas APIs públicas sem substituir um cabeçalho `Host` ou transmitir um cabeçalho `x-apigw-api-id`.

O URL base gerado está no seguinte formato:

```
https://{rest-api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}
```

------
#### [ Associate a VPC endpoint (Console de gerenciamento da AWS) ]

É possível associar um endpoint da VPC a uma API privada tanto durante a criação quanto depois. O procedimento a seguir mostra como associar um endpoint da VPC a uma API já criada. 

**Como associar um endpoint da VPC a uma API privada**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Selecione a API privada.

1. No painel de navegação principal, escolha **Política de recursos**.

1. Edite a política de recursos para permitir chamadas do endpoint da VPC adicional.

1. No painel de navegação principal, selecione **Configurações da API**.

1. Na seção **Detalhes da API**, escolha **Editar**.

1. Em **IDs de endpoint da VPC**, selecione IDs de endpoint da VPC adicionais.

1. Escolha **Salvar**.

1. Implante a API novamente para que as alterações entrem em vigor.

------
#### [ Dissociate a VPC endpoint (Console de gerenciamento da AWS) ]

**Como dissociar um endpoint da VPC de uma API REST privada**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Selecione a API privada.

1. No painel de navegação principal, escolha **Política de recursos**.

1. Edite a política de recursos para remover as menções ao endpoint da VPC que você deseja dissociar da API privada.

1. No painel de navegação principal, selecione **Configurações da API**.

1. Na seção **Detalhes da API**, escolha **Editar**.

1. Em **IDs de endpoint da VPC**, clique no **X** para dissociar o endpoint da VPC.

1. Escolha **Salvar**.

1. Implante a API novamente para que as alterações entrem em vigor.

------
#### [ Associate a VPC endpoint (AWS CLI) ]

O comando [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html) indicado abaixo associa endpoints da VPC no momento da criação da API:

```
aws apigateway create-rest-api \
    --name Petstore \
    --endpoint-configuration '{ "types": ["PRIVATE"], "vpcEndpointIds" : ["vpce-0212a4ababd5b8c3e", "vpce-0393a628149c867ee"] }' \
    --region us-west-2
```

A saída será exibida da seguinte forma:

```
{
    "apiKeySource": "HEADER",
    "endpointConfiguration": {
        "types": [
            "PRIVATE"
        ],
        "vpcEndpointIds": [
            "vpce-0212a4ababd5b8c3e",
            "vpce-0393a628149c867ee"
        ]
    },
    "id": "u67n3ov968",
    "createdDate": 1565718256,
    "name": "Petstore"
}
```

O comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) indicado abaixo associa endpoints da VPC a uma API já criada:

```
aws apigateway update-rest-api \
    --rest-api-id u67n3ov968 \
    --patch-operations "op='add',path='/endpointConfiguration/vpcEndpointIds',value='vpce-01d622316a7df47f9'" \
    --region us-west-2
```

A saída será exibida da seguinte forma:

```
{
    "name": "Petstore",
    "apiKeySource": "1565718256",
    "tags": {},
    "createdDate": 1565718256,
    "endpointConfiguration": {
        "vpcEndpointIds": [
            "vpce-0212a4ababd5b8c3e",
            "vpce-0393a628149c867ee",
            "vpce-01d622316a7df47f9"
        ],
        "types": [
            "PRIVATE"
        ]
    },
    "id": "u67n3ov968"
}
```

Implante a API novamente para que as alterações entrem em vigor.

------
#### [ Disassociate a VPC endpoint (AWS CLI) ]

O comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) indicado abaixo desassocia um endpoint da VPC de uma API privada:

```
aws apigateway update-rest-api \
    --rest-api-id u67n3ov968 \
    --patch-operations "op='remove',path='/endpointConfiguration/vpcEndpointIds',value='vpce-0393a628149c867ee'" \
    --region us-west-2
```

A saída será exibida da seguinte forma:

```
{
    "name": "Petstore",
    "apiKeySource": "1565718256",
    "tags": {},
    "createdDate": 1565718256,
    "endpointConfiguration": {
        "vpcEndpointIds": [
            "vpce-0212a4ababd5b8c3e",
            "vpce-01d622316a7df47f9"
        ],
        "types": [
            "PRIVATE"
        ]
    },
    "id": "u67n3ov968"
}
```

Implante a API novamente para que as alterações entrem em vigor.

------

## Etapa 4: Implantar uma API privada
<a name="apigateway-private-api-deploy-using-console"></a>

Para implantar uma API, crie uma implantação de API e a associe a um estágio. O procedimento a seguir mostra como implantar uma API privada.

------
#### [ Console de gerenciamento da AWS ]

**Como implantar uma API privada**

1. Selecione a API.

1. Escolha **Implantar API**.

1. Em **Estágio**, selecione **Novo estágio**.

1. Em **Nome do estágio**, insira o nome de um estágio.

1. (Opcional) Em **Description (Descrição)**, insira uma descrição.

1. Escolha **Implantar**.

------
#### [ AWS CLI ]

O comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) indicado abaixo implanta uma API privada:

```
aws apigateway create-deployment --rest-api-id a1b2c3 \ 
  --stage-name test \
  --stage-description 'Private API test stage' \
  --description 'First deployment'
```

------

## Solucionar problemas da API privada
<a name="apigateway-private-api-troubleshooting"></a>

O tópico a seguir fornece orientações para a solução de erros e problemas que você pode encontrar ao criar uma API privada.

### Problema: não consigo me conectar à minha API pública por um endpoint da VPC do API Gateway
<a name="apigateway-private-api-troubleshooting-public-access"></a>

Ao criar uma VPC, você pode definir as configurações de DNS. Recomendamos ativar a opção de DNS privado para a VPC. Se você optar por não ativar o DNS privado, só poderá acessar a API via DNS público.

Se você habilitar o DNS privado, não poderá acessar o endpoint padrão de uma API pública do API Gateway pelo endpoint da VPC. É possível acessar uma API com um nome de domínio personalizado.

Se você criar um nome de domínio personalizado regional, use um registro de alias do tipo A; se você criar um nome de domínio personalizado otimizado para bordas, não haverá restrições para o tipo de registro. Você pode acessar essas APIs públicas com o DNS privado habilitado. Para obter mais informações, consulte [Issue: I connect to my public API from an API Gateway VPC endpoint](https://repost.aws/knowledge-center/api-gateway-vpc-connections).

### Problema: minha API retorna `{"Message":"User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:us-east-1:********/****/****/"}`
<a name="apigateway-private-api-troubleshooting-principal"></a>

Em sua política de recursos, se você definir a entidade principal como uma entidade principal da AWS, como a seguinte:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/developer",
                    "arn:aws:iam::111122223333:role/Admin"
                ]
            },
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/stage/GET/pets"
            ]
        }
    ]
}
```

------

Você deverá usar a autorização `AWS_IAM` para todos os métodos em sua API, caso contrário, a API retornará a mensagem de erro anterior. Para obter mais instruções sobre como ativar a autorização `AWS_IAM` para um método, consulte [Métodos para APIs REST no API Gateway](how-to-method-settings.md).

### Problema: não consigo saber se meu endpoint da VPC está associado à minha API
<a name="apigateway-private-api-troubleshooting-associate-wait-time"></a>

Se você associar ou desassociar um endpoint da VPC de sua API privada, será necessário reimplantar a API. A operação de atualização pode levar alguns minutos para ser concluída devido à propagação do DNS. Durante esse período, sua API está disponível, mas a propagação de DNS para os URLs do DNS recém-gerados ainda poderá estar em andamento. Se os novos URLs não estiverem sendo resolvidos no DNS depois de alguns minutos, recomendamos que você reimplante a API.

# Nomes de domínio personalizados para APIs privadas no API Gateway
<a name="apigateway-private-custom-domains"></a>

Também é possível criar um nome domínio personalizado para APIs privadas. Use um nome de domínio personalizado privado para fornecer aos chamadores de API um URL mais simples e intuitivo. Com um nome de domínio personalizado privado, você pode reduzir a complexidade, configurar medidas de segurança durante o handshake do TLS e controlar o ciclo de vida do certificado do seu nome de domínio usando o AWS Certificate Manager (ACM). Para obter mais informações, consulte [Proteger a chave privada do certificado para o nome de domínio personalizado](#apigateway-private-custom-domains-secure-certificate-private-key).

Os nomes de domínio personalizados para APIs privadas não precisam ser exclusivos em várias contas. Você pode criar `example.private.com` na conta 111.122.223.333 e na conta 555.555.555.555, desde que seu certificado do ACM abranja o nome de domínio. Para identificar um nome de domínio personalizado privado, use o respectivo ARN. Esse identificador é exclusivo para nomes de domínio personalizados privados.

Quando você cria um nome de domínio personalizado privado no API Gateway, você é um *provedor de API*. Você pode fornecer seu nome de domínio personalizado privado a outras Contas da AWS usando o API Gateway ou o AWS Resource Access Manager (AWS RAM).

Quando você invoca um nome de domínio personalizado privado, você é um *consumidor de API*. Você pode consumir um nome de domínio personalizado privado da sua Conta da AWS ou de outra Conta da AWS.

Ao consumir um nome de domínio personalizado privado, você cria uma associação de acesso ao nome de domínio entre um endpoint da VPC e um nome de domínio personalizado privado. Com uma associação de acesso ao nome de domínio, os consumidores de API podem invocar seu nome de domínio personalizado privado enquanto estão isolados da internet pública. Para obter mais informações, consulte [Tarefas dos provedores e consumidores de API referentes a nomes de domínio personalizados para APIs privadas](apigateway-private-custom-domains-associations.md).

## Proteger a chave privada do certificado para o nome de domínio personalizado
<a name="apigateway-private-custom-domains-secure-certificate-private-key"></a>

Quando você solicita um certificado SSL/TLS usando o ACM para criar um nome de domínio personalizado para APIs privadas, o ACM gera um par de chaves públicas/privadas. Ao importar um certificado, você gera o par de chaves. A chave pública se torna parte do certificado. Para armazenar com segurança a chave privada, o ACM cria outra chave usando o AWS KMS, chamada de chave do KMS, com o alias **aws/acm**. O AWS KMS usa essa chave para criptografar a chave privada do seu certificado. Para obter mais informações, consulte [Proteção de dados no AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/data-protection.html), no *Guia do usuário do AWS Certificate Manager*.

O API Gateway usa o AWS TLS Connection Manager, um serviço que só pode ser acessado por Serviços da AWS, para proteger e usar as chaves privadas do seu certificado. Quando você usa seu certificado do ACM para criar um nome de domínio personalizado do API Gateway, o API Gateway associa seu certificado ao AWS TLS Connection Manager. Fazemos isso criando uma concessão no AWS KMS relação à sua chave gerenciada pela AWS. Essa concessão permite que o TLS Connection Manager use o AWS KMS para descriptografar a chave privada do seu certificado. O TLS Connection Manager usa o certificado e a chave privada descriptografada (texto simples) para estabelecer uma conexão segura (sessão SSL/TLS) com clientes de serviços do API Gateway. Quando o certificado for desassociado de um serviço do API Gateway, a concessão será removida. Para obter mais informações, consulte [Concessões](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) no *Guia do desenvolvedor do AWS Key Management Service*. 

Para obter mais informações, consulte [Criptografia de dados em repouso no Amazon API Gateway](data-protection-encryption.md#data-protection-at-rest).

## Considerações referentes a nomes de domínio personalizados privados
<a name="apigateway-private-custom-domains-considerations"></a>

As considerações a seguir podem afetar o uso de nomes de domínio personalizados privados.
+ O API Gateway leva em torno de 15 minutos para provisionar seu nome de domínio personalizado privado.
+ Se você atualizar seu certificado do ACM, o API Gateway levará cerca de 15 minutos para concluir a atualização. Durante esse período, seu nome de domínio fica no estado `UPDATING`, mas você ainda pode acessá-lo.
+ Para invocar um nome de domínio personalizado privado, você deve criar uma associação de acesso ao nome de domínio. Depois que uma associação de acesso ao nome de domínio é criada, ela leva cerca de 15 minutos para ficar pronta.
+ O ARN do nome de domínio personalizado privado contém o *account-id* e o *domain-name-id*. Quando você cria um nome de domínio, o API Gateway usa o formato de ARN `arn:partition:apigateway:region::/domainnames/domain-name`. Ao acessar um nome personalizado de domínio personalizado, use o formato de ARN `arn:partition:apigateway:region:account-id:/domainnames/domain-name+domain-name-id`. 

  Talvez seja necessário modificar as permissões do IAM para autorizar o acesso a um nome de domínio privado depois de criá-lo.
+ Não é possível invocar nomes de domínio personalizados privados usando o mesmo nome de um mesmo endpoint da VPC. Por exemplo, se você quiser invocar `arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234` e `arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+xyz000`, associe cada nome de domínio personalizado privado a um endpoint da VPC diferente.
+ Certificados curinga são permitidos, como um certificado para `*.private.example.com`.
+ Nomes de domínio personalizados curinga não são permitidos.
+ Somente certificados RSA com um tamanho de chave de 2.048 bits e certificados ECDSA com um tamanho de chave de 256 e 384 bits são permitidos.
+ Não é possível definir o tipo de endereço IP para APIs privadas para permitir que somente endereços IPv4 invoquem sua API privada. Somente pilha dupla é compatível. Para obter mais informações, consulte [Tipos de endereço IP para APIs REST no API Gateway](api-gateway-ip-address-type.md).
+ Para enviar tráfego usando sua API privada, é possível usar todos os tipos de endereço IP compatíveis com a Amazon VPC. Você pode enviar tráfego de pilha dupla e IPv6 configurando as definições no endpoint da VPC. Não é possível modificar isso usando o API Gateway. Para obter mais informações, consulte [Adicionar suporte a IPv6 para sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html).
+ O mapeamento de caminho base de vários níveis, como associar a API privada a `/developers/feature`, não é permitido, mas é possível usar uma regra de roteamento para criar uma condição de caminho de vários níveis. Para obter mais informações, consulte [Encaminhar o tráfego às APIs por meio do nome de domínio personalizado no API Gateway](rest-api-routing-mode.md).
+ Não é possível definir uma versão mínima do TLS para o nome de domínio personalizado privado. Todos os nomes de domínio personalizados privados têm a política de segurança `TLS-1-2`.
+ Você pode usar a política de endpoint da VPC para controlar o acesso a um nome de domínio personalizado privado. Para ter mais informações, consulte 4 e 5 em [Usar políticas de VPC endpoint para APIs privadas no API Gateway](apigateway-vpc-endpoint-policies.md).
+ Você deve criar uma política de recursos separada para a API privada e o nome de domínio personalizado privado. Para invocar um nome de domínio personalizado privado, um consumidor de API precisa de acesso à política de recursos do nome de domínio personalizado privado, à política de recursos da API privada e a quaisquer políticas de endpoint da VPC ou autorizações na API privada.

## Considerações sobre o uso de nomes de domínio personalizados privados com outros recursos do API Gateway
<a name="apigateway-private-custom-domains-considerations-for-migration"></a>

As seguintes considerações podem afetar a forma como você usa nomes de domínio personalizados privados com outros recursos do API Gateway:
+ Não é possível enviar tráfego de um nome de domínio personalizado privado a uma API pública.
+ Quando uma API privada é associada a um nome de domínio personalizado privado, não é possível alterar o tipo de endpoint da API. 
+ Não é possível migrar um nome de domínio personalizado público para um nome de domínio personalizado privado.
+ Se você usa um endpoint da VPC para acessar um nome de domínio personalizado público, não o use para criar uma associação de acesso ao nome de domínio com um nome de domínio personalizado privado.

## Diferenças entre nomes de domínio personalizados privados e nomes de domínio personalizados públicos
<a name="apigateway-private-custom-domains-public-differences"></a>

A seguir é apresentada uma descrição das diferenças entre nomes de domínio personalizados privados e públicos:
+ Os nomes de domínio personalizados privados não precisam ser exclusivos em várias contas.
+ Um nome de domínio privado tem um ID de nome de domínio. Esse ID distingue exclusivamente um nome de domínio personalizado privado e não é gerado para nomes de domínio personalizados públicos.
+ Ao usar a AWS CLI para atualizar ou excluir um nome de domínio personalizado privado, você deve fornecer o respectivo ID. Se você tiver um nome de domínio personalizado privado chamado `example.com` e um nome de domínio personalizado público chamado `example.com` e não fornecer o respectivo ID, o API Gateway modificará ou excluirá seu nome de domínio personalizado público.

## Próximas etapas referentes a nomes de domínio personalizados para APIs privadas
<a name="apigateway-private-custom-domains-next-steps"></a>

Para ter informações sobre as tarefas de um provedor de API e de um consumidor de API, consulte [Tarefas dos provedores e consumidores de API referentes a nomes de domínio personalizados para APIs privadas](apigateway-private-custom-domains-associations.md).

Para obter instruções sobre como criar um nome de domínio personalizado privado que você pode invocar em sua Conta da AWS, consulte [Tutorial: como criar e invocar um nome de domínio personalizado para APIs privadas](apigateway-private-custom-domains-tutorial.md).

Para obter instruções sobre como fornecer a outra Conta da AWS acesso ao seu nome de domínio personalizado privado, consulte [Provedor de API: compartilhar seu nome de domínio personalizado privado usando o AWS RAM](apigateway-private-custom-domains-provider-share.md). Para obter instruções sobre como associar o endpoint da VPC a um nome de domínio personalizado privado em outra Conta da AWS, consulte [Consumidor de API: associar o endpoint da VPC a um nome de domínio personalizado privado compartilhado com você](apigateway-private-custom-domains-consumer-create.md).

# Tarefas dos provedores e consumidores de API referentes a nomes de domínio personalizados para APIs privadas
<a name="apigateway-private-custom-domains-associations"></a>

Quando você cria um nome de domínio personalizado privado, você é um *provedor de API*. Quando você invoca um nome de domínio personalizado privado, você é um *consumidor de API*. Você pode consumir um nome de domínio personalizado privado da sua Conta da AWS ou de outra Conta da AWS.

A seção a seguir explica as tarefas exigidas pelo provedor e pelo consumidor de API para usar um nome de domínio personalizado privado. Quando você invoca um nome de domínio personalizado privado na sua Conta da AWS, você é tanto provedor quanto consumidor de API. Se quiser invocar um domínio personalizado privado em outra Conta da AWS, dependendo da relação de confiança entre o provedor de API e o consumidor de API no AWS Organizations, o AWS RAM poderá concluir algumas tarefas para você.

## Tarefas de um provedor de API
<a name="apigateway-private-custom-domains-associations-provider"></a>

Os provedores de API criam APIs privadas e as associam a nomes de domínio personalizados.

 Eles gerenciam duas políticas de recursos para proteger seus nomes de domínio personalizados privados. A primeira política, destinada ao serviço `execute-api`, controla quais endpoints da VPC podem invocar seu nome de domínio personalizado privado. Na configuração de nome de domínio personalizado privado, ela é chamada de `policy`.

A segunda política, destinada ao serviço Amazon API Gateway Management, controla quais endpoints da VPC em outras Contas da AWS podem formar uma associação de acesso ao nome de domínio com seu nome de domínio personalizado privado. Um endpoint da VPC precisa formar uma associação de acesso ao nome de domínio com um nome de domínio personalizado privado para invocá-lo. Na configuração de nome de domínio personalizado privado, trata-se da `managementPolicy`. Você pode usar o AWS RAM ou o API Gateway para atualizar essa política. Se você não pretende permitir que endpoints da VPC em outras Contas da AWS invoquem seu nome de domínio personalizado, não edite a `managementPolicy`.

Se você for provedor de API, deverá fazer o seguinte:

1. Crie uma API privada.

1. Atualize a `policy` da API privada para conceder ao seu endpoint da VPC acesso à API privada.

1. Crie um nome de domínio personalizado.

1. Atualize a `policy` do nome de domínio personalizado privado para conceder ao seu endpoint da VPC acesso ao nome de domínio personalizado privado.

1. Crie um mapeamento de caminho base ou uma regra de roteamento para enviar tráfego da API privada ao nome de domínio personalizado privado. Para obter mais informações, consulte [Encaminhar o tráfego às APIs por meio do nome de domínio personalizado no API Gateway](rest-api-routing-mode.md).

Se você quiser permitir que consumidores de API em outras Contas da AWS acessem seu nome de domínio personalizado privado, faça o seguinte:

1. Atualize a `managementPolicy` do nome de domínio personalizado privado para permitir que consumidores de API em outras contas associem o endpoint da VPC deles ao seu nome de domínio personalizado privado. Isso pode ser feito usando um dos métodos a seguir:  
**AWS RAM**  
Com o AWS RAM, se o provedor de API e o consumidor de API estiverem na mesma organização que está usando o AWS Organizations, o compartilhamento de recursos entre o provedor e o consumidor será aceito automaticamente. Do contrário, você deverá esperar até que o consumidor de API aceite o compartilhamento de recursos. **Recomendamos que você use o AWS RAM para compartilhar seu nome de domínio personalizado privado.**   
**API Gateway**  
Com o API Gateway, é possível usar somente a AWS CLI. Você deve atualizar seu nome de domínio personalizado privado usando uma operação de patch e fornecer seu próprio documento de política para a `managementPolicy`.

1. Atualize a `policy` do nome de domínio personalizado privado e quaisquer APIs privadas associadas a ele para conceder acesso ao endpoint da VPC do consumidor de API.

Para obter instruções sobre como fornecer sua API a outra Conta da AWS, consulte [Provedor de API: compartilhar seu nome de domínio personalizado privado usando o AWS RAM](apigateway-private-custom-domains-provider-share.md). 

## Tarefas de um consumidor de API
<a name="apigateway-private-custom-domains-associations-consumer"></a>

Os consumidores de API associam seus endpoints da VPC a um ARN de nome de domínio para invocar um nome de domínio personalizado privado. Os consumidores de API não precisam criar uma API do API Gateway.

Se você for um consumidor de API, faça o seguinte:

1. Crie um endpoint da VPC com DNS privado habilitado na Amazon VPC.

1. (Opcional, se for usado o AWS RAM) Aceite um compartilhamento de recursos de domínio personalizado privado no AWS RAM dentro de **12 horas** após o compartilhamento do recurso. Se você e o provedor de API estiverem na mesma organização, o compartilhamento de recursos será aceito automaticamente.

1. Obtenha o ARN do nome de domínio personalizado privado. Como o URL do nome de domínio personalizado privado não é exclusivo, você usa o respectivo ARN para formar a associação de acesso ao nome de domínio entre o endpoint da VPC e o nome de domínio personalizado privado. Você pode usar o AWS RAM para recuperar o ARN do nome de domínio personalizado privado.

1. Associe o ARN do domínio personalizado privado ao seu endpoint da VPC no API Gateway. Isso cria uma conexão segura entre o endpoint da VPC e o nome de domínio personalizado privado. O tráfego não deixa a rede da Amazon.

1. Aguarde até que o provedor de API conceda ao seu endpoint da VPC acesso ao nome de domínio personalizado privado e a todas as APIs privadas associadas ao nome de domínio personalizado privado. Se você for provedor e consumidor de API, conceda acesso de invocação ao seu próprio endpoint da VPC.

1. Crie uma zona hospedada privada do Route 53 e um registro do Route 53 para resolver o nome de domínio personalizado privado no Route 53.

Para obter instruções sobre como consumir uma API em outra Conta da AWS, consulte [Consumidor de API: associar o endpoint da VPC a um nome de domínio personalizado privado compartilhado com você](apigateway-private-custom-domains-consumer-create.md).

# Tutorial: como criar e invocar um nome de domínio personalizado para APIs privadas
<a name="apigateway-private-custom-domains-tutorial"></a>

Neste tutorial, você cria um nome de domínio personalizado privado que pode ser invocado em uma VPC em sua conta. Para conseguir isso, você é o provedor e o consumidor da API. Você precisa de uma API privada e de um endpoint da VPC existentes para concluir este tutorial. Se você usa um endpoint da VPC para acessar um nome de domínio personalizado público, não o use para este tutorial ou para criar associações de acesso a nomes de domínio.

## Etapa 1: criar um nome de domínio personalizado
<a name="apigateway-private-custom-domains-provider-create-domain"></a>

Para criar um nome de domínio personalizado privado, especifique o nome de domínio, o certificado do ACM e a política do serviço `execute-api` para controlar quais endpoints da VPC podem invocá-lo.

------
#### [ Console de gerenciamento da AWS ]

**Como criar um nome de domínio personalizado**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, selecione **Nomes de domínio personalizados**.

1. Escolha **Adicionar nome do domínio**.

1. Em **Nome de domínio**, insira um nome de domínio 

   Seu certificado do ACM deve abranger esse nome de domínio, mas o nome de domínio não precisa ser exclusivo.

1. Selecione **Privado**.

1. Em **Modo de roteamento**, escolha **Somente mapeamentos de API**.

1. Em **Certificado do ACM**, escolha um certificado.

1. Escolha **Adicionar nome do domínio**.

O API Gateway provisiona um nome de domínio com uma política `deny` que nega acesso a todos os recursos. Essa é a política de recursos do serviço `execute-api`. Você precisa atualizar essa política de recursos para conceder acesso aos seus endpoints da VPC e permitir que eles invoquem seu nome de domínio personalizado privado.

**Como atualizar sua política de recursos**

1. Escolha a guia **Política de recursos** e selecione **Editar política de recursos**.

1. Insira a política de recursos a seguir no editor de código. Substitua o endpoint da VPC *vpce-abcd1234efg* pelo seu ID de endpoint da VPC.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": "*",
               "Action": "execute-api:Invoke",
               "Resource": [
                   "execute-api:/*"
               ]
           },
           {
               "Effect": "Deny",
               "Principal": "*",
               "Action": "execute-api:Invoke",
               "Resource": [
                   "execute-api:/*"
               ],
               "Condition" : {
                   "StringNotEquals": {
                       "aws:SourceVpce": "vpce-abcd1234"
                   }
               }
           }
       ]
   }
   ```

1. Escolha **Salvar alterações**.

------
#### [ AWS CLI ]

Ao criar um nome de domínio personalizado privado usando a AWS CLI, você fornece uma política de recursos para o serviço `execute-api` conceder acesso aos endpoints da VPC e permitir que eles invoquem seu nome de domínio personalizado privado por meio do parâmetro `--policy file://policy.json`. Você pode modificar essa política posteriormente.

Neste exemplo, você anexará a política de recursos a seguir como `policy` carregando os parâmetros de um arquivo. Copie e salve esse arquivo como `policy.json`. Essa política permite apenas tráfego de entrada para um nome de domínio personalizado privado originado do endpoint da VPC * `vpce-abcd1234efg`*:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ]
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ],
            "Condition" : {
                "StringNotEquals": {
                    "aws:SourceVpce": "vpce-abcd1234"
                }
            }
        }
    ]
}
```

O comando [create-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-domain-name.html) indicado abaixo cria um nome de domínio personalizado privado:

```
aws apigateway create-domain-name \
    --domain-name 'private.example.com' \
    --certificate-arn 'arn:aws:acm:us-west-2:111122223333:certificate/a1b2c3d4-5678-90ab-cdef' \
    --security-policy 'TLS_1_2' \
    --endpoint-configuration '{"types":["PRIVATE"]}' \
    --policy file://policy.json
```

A saída será exibida da seguinte forma:

```
{
    "domainName": "private.example.com",
    "domainNameId": "abcd1234",
    "domainNameArn": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234",
    "certificateArn": "arn:aws:acm:us-west-2:111122223333:certificate/a1b2c3d4-5678-90ab-cdef",
    "certificateUploadDate": "2024-09-10T10:31:20-07:00",
    "endpointConfiguration": {
        "types": [
            "PRIVATE"
        ]
    },
    "domainNameStatus": "AVAILABLE",
    "securityPolicy": "TLS_1_2",
    "routingMode" : "API_MAPPING_ONLY",
    "policy": "..."
}
```

------

## Etapa 2: criar um mapeamento de caminho base para associar a API privada ao nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-base-path-mapping"></a>

Depois de criar um nome de domínio personalizado privado, você associa uma API privada a ele. O mapeamento de caminho base torna uma API acessível por meio da combinação do nome de domínio personalizado e do caminho base correspondente. Recomendamos usar um único nome de domínio personalizado privado como o nome do host de várias APIs privadas.

Todos os provedores de API precisam criar um mapeamento de caminho base, mesmo que você não pretenda invocar sua API. Também é necessário conceder acesso para que os endpoints da VPC invoquem quaisquer APIs privadas que você associa ao nome de domínio personalizado privado.

------
#### [ Console de gerenciamento da AWS ]

**Como criar um mapeamento de caminho base**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, selecione **Nomes de domínio personalizados**.

1. Escolha um nome de domínio personalizado privado.

1. Na guia **Mapeamentos de API**, escolha **Configurar mapeamentos**.

1. Escolha **Add new mapping (Adicionar novo mapeamento)**.

1. Insira uma **API**, um **Estágio** e, opcionalmente, um **Caminho**.

1. Escolha **Salvar**.

------
#### [ AWS CLI ]

O comando [create-base-path-mapping](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-base-path-mapping.html) indicado abaixo criar um mapeamento entre uma API privada e um nome de domínio personalizado privado:

```
aws apigateway create-base-path-mapping \
    --domain-name-id abcd1234 \
    --domain-name 'private.example.com' \
    --rest-api-id a1b2c3 \
    --stage prod \
    --base-path v1
```

A saída será exibida da seguinte forma:

```
{
    "basePath": "v1",
    "restApiId": "a1b2c3",
    "stage": "prod"
}
```

------

Para ter maior flexibilidade em relação a como você direciona o tráfego para as APIs, você pode alterar o modo de roteamento para `ROUTING_RULE_ONLY` ou `ROUTING_RULE_THEN_API_MAPPING` e criar uma regra de roteamento. Para obter mais informações, consulte [Encaminhar o tráfego às APIs por meio do nome de domínio personalizado no API Gateway](rest-api-routing-mode.md).

**nota**  
Se você quiser que outras Contas da AWS invoquem seu nome de domínio personalizado privado, depois de concluir este tutorial, siga as etapas em [Provedor de API: compartilhar seu nome de domínio personalizado privado usando o AWS RAM](apigateway-private-custom-domains-provider-share.md).

## Etapa 3: criar uma associação de acesso ao nome de domínio entre o nome de domínio personalizado e um endpoint da VPC
<a name="apigateway-private-custom-domains-provider-associate-with-vpce"></a>

Em seguida, você cria uma associação de acesso ao nome de domínio entre o nome de domínio personalizado privado e o endpoint da VPC. Seu endpoint da VPC usa a associação de acesso ao nome de domínio para invocar o nome de domínio personalizado privado enquanto está isolado da internet pública.

------
#### [ Console de gerenciamento da AWS ]

**Como criar uma associação de acesso ao nome de domínio**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, selecione **Nomes de domínio personalizados**.

1. Escolha um nome de domínio personalizado privado.

1. Na guia **Compartilhamento de recursos**, em **Associações de acesso a nomes de domínio**, escolha **Criar associação de acesso a nomes de domínio**.

1. Em **ARN do nome do domínio**, selecione seu nome de domínio.

1. Em **IDs de endpoint da VPC**, selecione o ID de endpoint da VPC ao qual você forneceu acesso na Etapa 1.

1. Escolha **Associação de acesso a nomes de domínio**.

Você também pode criar sua associação de acesso ao nome de domínio usando a página **Associações de acesso a nomes de domínio** do console.

------
#### [ AWS CLI ]

O comando `create-domain-name-access-association` a seguir cria uma associação de acesso ao nome de domínio entre o nome de domínio personalizado privado e o endpoint da VPC.

```
aws apigateway create-domain-name-access-association \
    --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234 \
    --access-association-source vpce-abcd1234efg \
    --access-association-source-type VPCE \
    --region us-west-2
```

A saída será exibida da seguinte forma:

```
{
    "domainNameAccessAssociationARN": "arn:aws:apigateway:us-west-2:111122223333:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg",
    "accessAssociationSource": "vpce-abcd1234efg",
    "accessAssociationSourceType": "VPCE",
    "domainNameARN" : "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
}
```

------

Depois que a associação de acesso ao nome de domínio é criada, ela leva cerca de 15 minutos para ficar pronta. Enquanto isso, você pode prosseguir com as etapas a seguir.

## Etapa 4: criar uma zona hospedada do Route 53
<a name="apigateway-private-custom-domains-provider-create-route-53-private-hosted-zone"></a>

Depois de atualizar sua política de recursos e associar o nome de domínio personalizado privado ao endpoint da VPC, você cria uma zona hospedada privada no Route 53 para resolver o nome de domínio personalizado. Zona hospedada é um contêiner que abriga informações sobre como você deseja rotear o tráfego para um domínio dentro de uma ou mais VPCs sem expor seus recursos à internet. Para obter mais informações, consulte [Como trabalhar com zonas hospedadas privadas](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html).

------
#### [ Console de gerenciamento da AWS ]

Para usar o Console de gerenciamento da AWS, consulte [Creating a private hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) no *Guia do desenvolvedor do Amazon Route 53*.

Em **Nome**, use o nome do seu domínio personalizado privado. Em **ID da VPC**, use a VPC que contém o endpoint da VPC que você usou nas etapas anteriores.

------
#### [ AWS CLI ]

O comando [create-hosted-zone](https://docs.aws.amazon.com/cli/latest/reference/route53/create-hosted-zone.html) indicado abaixo cria uma zona hospedada privada:

```
aws route53 create-hosted-zone --name private.example.com \
    --caller-reference 2014-04-01-18:47 \
    --hosted-zone-config Comment="command-line version",PrivateZone=true \
    --vpc VPCRegion=us-west-2,VPCId=vpc-abcd1234
```

A saída contém o ID da zona hospedada. Você usa o ID da zona hospedada nas etapas a seguir.

------

## Etapa 5: criar um registro de DNS do Route 53
<a name="apigateway-private-custom-domains-provider-create-route-53-record"></a>

Depois de criar a zona hospedada, crie um registro para resolver o nome de domínio personalizado privado. Use o ID da zona hospedada criado na etapa anterior. Neste exemplo, você cria um tipo de registro A. Se estiver usando IPv6 para o endpoint da VPC, crie um tipo de registro AAAA. Se estiver usando pilha dupla para o endpoint da VPC, crie um registro do tipo AAAA e um do tipo A.

------
#### [ Console de gerenciamento da AWS ]

Para usar o Console de gerenciamento da AWS, consulte [Routing traffic to an Amazon API Gateway API by using your domain name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-api-gateway.html).

Use **Criação rápida** e ative **Alias**. Para o endpoint, use o nome DNS do endpoint da VPC.

------
#### [ AWS CLI ]

Para configurar os registros de DNS para associar o nome de domínio personalizado privado ao nome de host do ID de zona hospedada fornecido, crie um arquivo JSON que contenha a configuração de um registro de DNS para o nome de domínio privado.

O comando `setup-dns-record.json` a seguir mostra como criar um registro de DNS `A` para associar um nome de domínio personalizado privado ao respectivo nome de host privado. Você fornece o `DNSName` do ID do DNS da VPC e o ID da zona hospedada que você criou na etapa anterior.

```
{
  "Changes": [
    {
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "private.example.com",
        "Type": "A",
        "AliasTarget": {
          "DNSName": "vpce-abcd1234.execute-api.us-west-2.vpce.amazonaws.com",
          "HostedZoneId": "Z2OJLYMUO9EFXC",
          "EvaluateTargetHealth": false
        }
      }
    }
  ]
}
```

O comando [change-resource-record-sets](https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html) indicado abaixo cria um registro de DNS para o nome de domínio personalizado privado:

```
aws route53 change-resource-record-sets \
    --hosted-zone-id ZABCDEFG1234 \
    --change-batch file://path/to/your/setup-dns-record.json
```

Substitua `hosted-zone-id` pelo ID da zona hospedada do Route 53 do conjunto de registros DNS na conta. O valor do parâmetro `change-batch` aponta para um arquivo JSON.

------

Caso não pretenda invocar seu nome de domínio personalizado privado, depois de confirmar que ele está funcionando, você poderá excluir esses recursos.

## Etapa 6: invocar o nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-tutorial-invoke"></a>

Agora você pode invocar o nome de domínio personalizado privado em sua Conta da AWS. Em sua VPC, use o comando curl a seguir para acessar o nome de domínio personalizado privado.

```
curl https://private.example.com/v1
```

Para ter mais informações sobre outras formas de invocar sua API privada, consulte [Invocar uma API privada usando um nome de domínio personalizado](apigateway-private-api-test-invoke-url.md#apigateway-private-custom-domains-provider-invoke).

## Etapa 7: limpar
<a name="apigateway-private-custom-domains-cleanup"></a>

Para evitar custos desnecessários, exclua a associação entre o endpoint da VPC e o nome de domínio personalizado privado e, em seguida, exclua o nome de domínio personalizado privado.

------
#### [ Console de gerenciamento da AWS ]

**Como excluir a associação de acesso ao nome de domínio**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, escolha **Associações de acesso a nomes de domínio**.

1. Selecione sua associação de acesso ao nome de domínio e escolha **Excluir**.

1. Confirme sua escolha e selecione **Excluir**.

Depois de excluir sua associação de acesso ao nome de domínio, você pode excluir o nome de domínio personalizado privado.

**Como excluir seu nome de domínio personalizado privado**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, selecione **Nomes de domínio personalizados**.

1. Escolha seu nome de domínio personalizado privado.

1. Escolha **Excluir**.

1. Confirme sua escolha e selecione **Excluir**.

Se necessário, você também pode excluir o endpoint da VPC. Para obter mais informações, consulte [Excluir um endpoint de interface](https://docs.aws.amazon.com/vpc/latest/privatelink/delete-interface-endpoint.html).

------
#### [ AWS CLI ]

**Para limpar**

1. O comando `delete-access-association` indicado abaixo exclui a associação de acesso ao nome de domínio:

   ```
   aws apigateway delete-domain-name-access-association \
       --domain-name-access-association-arn 'arn:aws:apigateway:us-west-2:111122223333:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg' \
       --region us-west-2
   ```

1. O comando `delete-domain-name` indicado abaixo exclui seu nome de domínio personalizado privado. Esse comando também remove todos os mapeamentos de caminho base.

   ```
   aws apigateway delete-domain-name \
       --domain-name test.private.com \
       --domain-name-id abcd1234
   ```

Se necessário, você também pode excluir o endpoint da VPC. Para obter mais informações, consulte [Excluir um endpoint de interface](https://docs.aws.amazon.com/vpc/latest/privatelink/delete-interface-endpoint.html).

------

## Práticas recomendadas
<a name="apigateway-private-custom-domains-best-practices"></a>

Sugerimos que você siga as práticas recomendadas indicadas abaixo ao criar um nome de domínio personalizado privado:
+ Crie um mapeamento de caminho base ou regras de roteamento para enviar tráfego de um nome de domínio personalizado privado a várias APIs privadas.
+ Quando um endpoint da VPC não precisar mais acessar um nome de domínio personalizado privado, exclua a associação. Além disso, remova o endpoint da VPC da `policy` referente ao serviço `execute-api` do domínio personalizado privado. 
+ Configure pelo menos duas zonas de disponibilidade por endpoint da VPC.
+ Desabilite o endpoint padrão. Recomendamos desabilitar o endpoint padrão para permitir que os consumidores de API chamem sua API somente pelo nome de domínio personalizado. Para obter mais informações, consulte [Desabilitar o endpoint padrão para APIs REST](rest-api-disable-default-endpoint.md).
+ Recomendamos que você provisione uma zona hospedada privada do Route 53 e um registro do tipo A ao configurar seu nome de domínio personalizado privado. Se você não pretende invocar seu nome de domínio personalizado privado, poderá excluir esses recursos posteriormente.

# Como trabalhar com nomes de domínio personalizados privados entre contas
<a name="apigateway-private-custom-domains-other-accounts"></a>

Esta seção explica como trabalhar com nomes de domínio personalizados privados entre contas. É possível fornecer um nome de domínio personalizado privado para outra Conta da AWS e usar outra Conta da AWS para invocar um nome de domínio personalizado privado.

Você pode compartilhar seu nome de domínio personalizado privado com outra Conta da AWS usando o AWS Resource Access Manager ou o API Gateway. O AWS Resource Access Manager (AWS RAM) ajuda você a compartilhar com segurança seus recursos entre Contas da AWS e dentro de sua organização ou unidades organizacionais (UOs). Para obter mais informações, consulte [ O que é o AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html).

Para obter instruções sobre como compartilhar um nome de domínio personalizado privado com outra Conta da AWS usando o AWS RAM, consulte [Provedor de API: compartilhar seu nome de domínio personalizado privado usando o AWS RAM](apigateway-private-custom-domains-provider-share.md).

Para obter instruções sobre como compartilhar um nome de domínio personalizado privado com outra Conta da AWS usando o API Gateway, consulte [Provedor de API: compartilhar seu nome de domínio personalizado privado usando a AWS CLI do API Gateway](apigateway-private-custom-domains-provider-share-cli.md).

Para obter instruções sobre como consumir um nome de domínio personalizado privado em outra Conta da AWS, consulte [Consumidor de API: associar o endpoint da VPC a um nome de domínio personalizado privado compartilhado com você](apigateway-private-custom-domains-consumer-create.md).

## Práticas recomendadas para trabalhar com nomes de domínio personalizados privados entre contas
<a name="apigateway-private-custom-domains-other-accounts-best-practices"></a>

Indicamos as seguintes práticas recomendadas para trabalhar com nomes de domínio personalizados privados entre contas:
+ Use o AWS RAM para compartilhar nomes de domínio personalizados privados. Ao usar o AWS RAM, você pode reduzir o custo operacional indireto e não precisa criar uma `managementPolicy` para o serviço Amazon API Gateway Management.
+ Use o parâmetro `resource-owner` ao listar seus nomes de domínio personalizados privados ou associações de acesso a nomes de domínio. Use o parâmetro `resource-owner` para listar somente os recursos que pertencem a você ou a outras Contas da AWS.

  O seguinte exemplo mostra como obter todas as associações de acesso a nomes de domínio pertencentes a você:

  ```
  aws apigateway get-domain-name-access-associations --resource-owner SELF
  ```

  Use `--resource-owner OTHER_ACCOUNTS` para listar todas as associações de acesso a nomes de domínio que outras contas formaram com seu nome de domínio personalizado privado.

# Provedor de API: compartilhar seu nome de domínio personalizado privado usando o AWS RAM
<a name="apigateway-private-custom-domains-provider-share"></a>

Você pode fornecer aos consumidores de API em outras Contas da AWS acesso ao seu nome de domínio personalizado privado. Nesta seção, você aprenderá a compartilhar seu nome de domínio personalizado privado usando o AWS RAM e a controlar o acesso ao seu nome de domínio personalizado privado.

## Considerações referentes ao compartilhamento de um nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-provider-share-considerations"></a>

As considerações a seguir podem afetar a forma como você fornece acesso ao seu nome de domínio personalizado privado usando o AWS RAM. Para saber como compartilhar seu nome de domínio personalizado privado sem usar o AWS RAM, consulte [Provedor de API: compartilhar seu nome de domínio personalizado privado usando a AWS CLI do API Gateway](apigateway-private-custom-domains-provider-share-cli.md).
+ Os nomes de domínio personalizados privados são compartilhados em nível de Região da AWS. Tanto o nome de domínio personalizado privado quanto o endpoint da VPC precisam estar na mesma Região da AWS.
+ É possível usar um compartilhamento de recursos com várias entidades principais e, depois de criar o compartilhamento de recursos, adicionar mais entidades principais a ele. Recomendamos que, quando possível, você reutilize seu compartilhamento de recursos.
+ Você sempre precisa conceder acesso ao endpoint da VPC do consumidor de API para invocar seu nome de domínio personalizado privado e todas as APIs privadas associadas a ele.
+ Se o consumidor e o provedor de API estiverem na mesma organização que está usando o AWS Organizations, o compartilhamento de recursos será aceito automaticamente. Ainda assim você precisa criar o compartilhamento de recursos usando o AWS RAM.
+ Se o consumidor e o provedor de API estiverem na mesma organização que está usando o AWS Organizations e o compartilhamento de recursos dentro da organização estiver habilitado, quaisquer entidades principais na organização com as quais você compartilhar receberão acesso automaticamente aos compartilhamentos de recursos. Não há necessidade de convite, e você pode ignorar o compartilhamento de recursos.
+ Se o consumidor de API não aceitar o compartilhamento de recursos em **12 horas**, o provedor de API deverá compartilhar o recurso novamente.
+ Após a criação do compartilhamento de recursos, o AWS RAM atualiza a `managementPolicy` referente ao serviço Amazon API Gateway Management para o nome de domínio personalizado privado a fim de impedir o acesso a entidades principais sem acesso `allow` explícito. Para ter mais informações, consulte [Determining whether a request is allowed or denied within an account](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) no Guia do usuário do IAM.

  A `managementPolicy` atualizada será semelhante ao seguinte:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Id": "abcd1234-1234-abcd-abcd-1234abcdefg",
      "Statement": [
          {
              "Sid": "APIGatewayPrivateDomainNameManagementPolicyDefaultPermission-org",
              "Effect": "Allow",
              "Principal": "*",
              "Action": "apigateway:CreateAccessAssociation",
              "Resource": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234",
              "Condition": {
                  "StringEquals": {
                      "aws:PrincipalOrgID": "o-1234abcd"
                  },
                  "StringNotEquals": {
                      "aws:PrincipalAccount": "111122223333"
                  }
              }
          }
      ]
  }
  ```

------

  O AWS RAM impediu que entidades principais sem acesso `allow` explícito criassem associações de acesso ao seu nome de domínio personalizado privado, adicionando o seguinte:

  ```
  "StringNotEquals": {
      "aws:PrincipalAccount": "111122223333"
  }
  ```

  Você ainda pode usar a entidade principal na Conta da AWS que criou o nome de domínio personalizado privado para criar associações de acesso a nomes de domínio.

## Permitir que outras contas criem associações de acesso a nomes de domínio com seu nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-provider-management-policy-update"></a>

Primeiro, conceda acesso a outra Conta da AWS para criar associações de acesso ao nome de domínio com seu nome de domínio personalizado privado.

------
#### [ Console de gerenciamento da AWS ]

Para usar o Console de gerenciamento da AWS, consulte [Creating a resource share in AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html) no *Guia do usuário do AWS RAM*.

Em **Selecionar tipo de recurso**, escolha **Domínios personalizados privados do API Gateway**.

------
#### [ AWS CLI ]

O [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) indicado abaixo cria um compartilhamento de recursos para seu nome de domínio personalizado privado. Pode levar alguns minutos para que as associações de entidades principais entre recurso e principal sejam concluídas. Para entidades principais, forneça um ID de conta ou um ID de organização, como `arn:aws:organizations::123456789012:organization/o-1234abcd`. Você pode fornecer várias entidades principais para seu compartilhamento de recursos.

```
aws ram create-resource-share \
    --region us-west-2 \
    --name privateCustomDomain-resource-share \
    --permission-arns arn:aws:ram::aws:permission/APIGatewayPrivateDomainNameManagementPolicyDefaultPermission \
    --resource-arns arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234 \
    --principals 222222222222
```

------

Depois de fornecer acesso a outra Conta da AWS, os consumidores de API dessa conta devem criar uma associação de acesso ao nome de domínio entre o endpoint da VPC deles e seu nome de domínio personalizado privado. Não é possível criar a associação de acesso ao nome de domínio para eles. Para obter mais informações, consulte [Associe o endpoint da VPC a um nome de domínio personalizado privado compartilhado](apigateway-private-custom-domains-consumer-create.md#apigateway-private-custom-domains-consumer-associate).

## Permita que outras contas invoquem seu nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-provider-policy-update"></a>

Em seguida, conceda acesso ao endpoint da VPC do consumidor de API para invocar seu nome de domínio personalizado privado e todas as APIs privadas associadas a ele.

------
#### [ Console de gerenciamento da AWS ]

**Como permitir que endpoints da VPC em outras contas invoquem seu nome de domínio personalizado privado**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, selecione **Nomes de domínio personalizados**.

1. Escolha o nome de domínio personalizado privado que você compartilhou com outras Contas da AWS.

1. Na guia **Política de recursos**, selecione **Editar política de recursos**.

1. Adicione o ID do endpoint da VPC do consumidor de API à sua política de recursos.

   Você pode encontrar o ID do endpoint da VPC do consumidor de API na seção **Associações de acesso a nomes de domínio** da guia **Compartilhamento de recursos** na página **Detalhes do domínio** do seu nome de domínio personalizado privado.

1. Escolha **Salvar alterações**.

------
#### [ AWS CLI ]

A `policy` a seguir referente ao serviço `execute-api` permite o tráfego de entrada para um nome de domínio personalizado privado originado dos endpoints da VPC `vpce-abcd1234efg` e `vpce-xyz000abc`.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ]
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ],
            "Condition" : {
                "StringNotEquals": {
                    "aws:SourceVpce": [
                    "vpce-abcd1234",
                    "vpce-xyzz0000"
                    ]
                }
            }
        }
    ]
}
```

O comando [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) indicado abaixo usa uma operação de patch para atualizar a `policy` para um nome de domínio personalizado privado:

```
aws apigateway update-domain-name
    --domain-name private.example.com \
    --domain-name-id abcd1234 \
    --patch-operations op=replace,path=/policy,value='"{\"Version\": \"2012-10-17\",		 	 	 \"Statement\": [{\"Effect\": \"Allow\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\":[\"execute-api:/*\"]},{\"Effect\": \"Deny\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\":[\"execute-api:/*\"],\"Condition\":{\"StringNotEquals\":[\"vpce-abcd1234efg\", \"vpce-xyz000abc\"]}}}]}"
```

------

# Provedor de API: interromper o compartilhamento de um nome de domínio personalizado privado usando o AWS RAM
<a name="apigateway-private-custom-domains-provider-stop-sharing"></a>

Para interromper o compartilhamento de seu nome de domínio personalizado privado, primeiro impeça que o consumidor de API crie mais associações de acesso a nomes de domínio dissociando o compartilhamento de recursos. Em seguida, rejeite a associação de acesso ao nome de domínio e remova o endpoint da VPC do consumidor de API da `policy` referente ao serviço `execute-api`. O consumidor de API pode então excluir a associação de acesso ao nome de domínio que ele fez.

## Interromper o compartilhamento do nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-provider-dissociate-ram"></a>

Primeiro, interrompa o compartilhamento de recursos usando o AWS RAM.

------
#### [ Console de gerenciamento da AWS ]

Para usar o Console de gerenciamento da AWS, consulte [Update a resource share in AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html).

------
#### [ AWS CLI ]

O comando [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) indicado abaixo dissocia um compartilhamento de recursos para seu nome de domínio personalizado privado.

```
aws ram disassociate-resource-share \
    --region us-west-2 \
    --resource-arns arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234 \
    --principals 222222222222
```

------

## Rejeitar uma associação de acesso ao nome de domínio
<a name="apigateway-private-custom-domains-provider-reject"></a>

Depois de interromper o compartilhamento de seu recurso usando o AWS RAM, rejeite a associação de acesso ao nome de domínio entre um endpoint da VPC em outra conta e seu nome de domínio personalizado privado. 

**nota**  
Não é possível rejeitar uma associação de acesso ao nome de domínio em sua conta. Para interromper o compartilhamento de recursos, exclua a associação de acesso ao nome de domínio. Para ter mais informações, consulte [Excluir uma associação de acesso ao nome de domínio](apigateway-private-custom-domains-tutorial.md#apigateway-private-custom-domains-cleanup).

Quando você rejeita uma associação de acesso a um nome de domínio com um endpoint da VPC, se um consumidor de API tentar chamar seu nome de domínio personalizado privado, o API Gateway rejeitará a chamada e retornará um código de status `403`.

------
#### [ Console de gerenciamento da AWS ]

**Como rejeitar uma associação de acesso ao nome de domínio**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, selecione **Nomes de domínio personalizados**.

1. Escolha o nome de domínio personalizado privado que você compartilhou com outras Contas da AWS.

1. Em **Compartilhamento de recursos**, escolha a associação de acesso ao nome de domínio que você deseja rejeitar.

1. Escolha **Rejeitar associação**.

1. Confirme sua escolha e selecione **Rejeitar**.

------
#### [ AWS CLI ]

O comando `reject-domain-name-access-association` indicado abaixo rejeita a associação de acesso ao nome de domínio entre o endpoint da VPC e seu nome de domínio personalizado privado:

```
aws apigateway reject-domain-name-access-association \
    --domain-name-access-association-arn arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg \
    --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234
```

------

## Negar ao provedor de API acesso para invocar seu nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-provider-deny-access"></a>

Depois de rejeitar a associação de acesso ao nome de domínio, remova o endpoint da VPC do consumidor de API da sua `policy` referente ao serviço `execute-api`.

------
#### [ Console de gerenciamento da AWS ]

**Como remover o endpoint da VPC do consumidor de API da sua política de recursos**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, selecione **Nomes de domínio personalizados**.

1. Escolha o nome de domínio personalizado privado que você compartilhou com outras Contas da AWS.

1. Na guia **Política de recursos**, escolha **Editar**.

1. Remova o endpoint da VPC da política.

1. Escolha **Salvar alterações**.

------
#### [ AWS CLI ]

O comando [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) a seguir usa uma operação de patch para atualizar a `policy` referente ao serviço `execute-api` de um nome de domínio personalizado privado. Essa nova `policy` remove um ID de endpoint da VPC adicional acrescentado em [Permita que outras contas invoquem seu nome de domínio personalizado privado](apigateway-private-custom-domains-provider-share.md#apigateway-private-custom-domains-provider-policy-update):

```
aws apigateway update-domain-name
    --domain-name private.example.com \
    --domain-name-id abcd1234 \
    --patch-operations op=replace,path=/policy,value='"{\"Version\": \"2012-10-17\",		 	 	 \"Statement\": [{\"Effect\": \"Allow\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\":[\"execute-api:/*\"]},{\"Effect\": \"Deny\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\":[\"execute-api:/*\"],\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpce\": \"vpce-abcd1234efg\"}}}]}"
```

------

O consumidor de API deve então excluir a associação de acesso ao nome de domínio. Não é possível excluí-lo em nome dele. Para obter mais informações, consulte [Consumidor de API: excluir a associação de acesso ao nome de domínio com um nome de domínio personalizado privado](apigateway-private-custom-domains-consumer-delete-domain-name-access-association.md).

# Provedor de API: compartilhar seu nome de domínio personalizado privado usando a AWS CLI do API Gateway
<a name="apigateway-private-custom-domains-provider-share-cli"></a>

Você pode compartilhar um nome de domínio personalizado privado usando a AWS CLI do API Gateway, mas recomendamos usar o AWS RAM para reduzir o custo operacional indireto. Para obter instruções sobre como usar o AWS RAM para compartilhar nomes de domínio personalizados privados, consulte [Provedor de API: compartilhar seu nome de domínio personalizado privado usando o AWS RAM](apigateway-private-custom-domains-provider-share.md).

Para compartilhar um nome de domínio personalizado privado usando a AWS CLI do API Gateway, conceda a outras Contas da AWS acesso para criar associações de acesso a nomes de domínio e invocar seu nome de domínio personalizado privado. Para isso, atualize a `managementPolicy` referente ao serviço API Gateway Management e a `policy` referente ao serviço `execute-api` do seu nome de domínio personalizado privado. Você também precisa conceder acesso ao endpoint da VPC do consumidor de API na política de recursos referente a todas as APIs privadas associadas ao seu nome de domínio personalizado privado.

O consumidor de API ainda assim precisa criar uma associação de acesso ao nome de domínio em sua própria conta entre o endpoint da VPC dele e seu nome de domínio personalizado privado. Não é possível fazer isso por ele.

## Conceder acesso ao nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-provider-share-cli-allow"></a>

**Como conceder acesso ao nome de domínio personalizado privado**

1. Para atualizar a `managementPolicy` referente ao serviço API Gateway Management, crie um arquivo JSON que contenha a operação de patch para atualizar a política. O comando `patch-managementPolicy.json` a seguir substitui a `managementPolicy` atual por uma política de exemplo que concede às Contas da AWS 111122223333 e 444455556666 acesso para criar associações de acesso a nomes de domínio com o nome de domínio personalizado privado `private.example.com`.

   ```
   [{
       "op": "replace",
       "path": "/managementPolicy",
       "value": "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"arn:aws:iam::111122223333:root\", \"arn:aws:iam::444455556666:root\"]},\"Action\":\"apigateway:CreateAccessAssociation\",\"Resource\":\"arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"}]}"
   }]
   ```

    O comando [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) a seguir atualiza a `managementPolicy` usando `patch-managementPolicy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-managementPolicy.json
   ```

   Depois de conceder acesso, você precisa notificar o consumidor de API de que ele pode formar a associação de acesso ao nome de domínio. Se você usar o AWS RAM, o AWS RAM executará essa etapa para você.

1. Para atualizar a `policy` referente ao serviço `execute-api`, crie um arquivo JSON que contenha a operação de patch para atualizar a política. O exemplo `patch-policy.json` a seguir substitui a `policy` atual por um exemplo de política que concede acesso a dois endpoints da VPC para invocar o nome de domínio personalizado privado `private.example.com`.

   ```
   [{
       "op": "replace",
       "path": "/policy",
       "value": "{\"Version\": \"2012-10-17\",		 	 	 \"Statement\": [{\"Effect\": \"Allow\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\": \"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"},{\"Effect\": \"Deny\",\"Principal\": \"*\",\"Action\": \"execute-api:Invoke\",\"Resource\": \"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\",\"Condition\": {\"StringNotEquals\": {\"aws:SourceVpce\": [\"vpce-abcd1234\",\"vpce-xyzz0000\"]}}}]}"
   }]
   ```

    Use o comando [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) a seguir para atualizar a `policy` usando `patch-policy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-policy.json
   ```

## Negar acesso ao nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-provider-share-cli-deny"></a>

Para interromper o compartilhamento de seu nome de domínio personalizado privado, você precisa rejeitar a associação de acesso ao nome de domínio entre seu nome de domínio personalizado privado e o endpoint da VPC do consumidor de API.

**Como negar acesso ao nome de domínio personalizado privado**

1. O comando `reject-domain-name-access-association` a seguir rejeita a associação de acesso ao nome de domínio.

   ```
   aws apigateway reject-domain-name-access-association \
       --domain-name-access-association-arn arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234 \
       --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234
   ```

1. Modifique o `patch-managementPolicy.json` para remover o acesso à conta do provedor de API e criar uma associação de acesso ao nome de domínio com seu nome de domínio personalizado privado. O seguinte `patch-managementPolicy.json` remove uma conta da `managementPolicy`:

   ```
   [{
        "op": "replace",
        "path": "/managementPolicy",
        "value": "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"apigateway:CreateAccessAssociation\",\"Resource\":\"arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"}]}"
   }]
   ```

   O comando [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) a seguir atualiza a `managementPolicy` usando `patch-managementPolicy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-managementPolicy.json
   ```

1. Modifique o `patch-policy.json` para remover o acesso do endpoint da VPC do provedor de API para invocar seu nome de domínio personalizado privado. O seguinte `patch-policy.json` remove o ID do endpoint da VPC da `policy`:

   ```
   [{
       "op": "replace",
       "path": "/policy",
       "value": "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\"},{\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"execute-api:Invoke\",\"Resource\":\"arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234\",\"Condition\":{\"StringNotEquals\":{\"aws:SourceVpce\":\"vpce-abcd1234\"}}}]}"
   }]
   ```

   O comando [update-domain-name](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-domain-name.html) a seguir atualiza a `policy` usando `patch-policy.json`. 

   ```
   aws apigateway update-domain-name \
       --domain-name private.example.com \
       --domain-name-id abcd1234 \
       --patch-operations file://patch-policy.json
   ```

## Exemplos de políticas usadas neste procedimento
<a name="apigateway-private-custom-domains-provider-share-cli-policies"></a>

A seção a seguir mostra exemplos de políticas usadas no procedimento anterior.

O exemplo de política a seguir refere-se à `managementPolicy` do serviço Amazon API Gateway Management. Essa política concede acesso às Contas da AWS 111122223333 e 444455556666 para criar associações de acesso a nomes de domínio com o nome de domínio personalizado privado `private.example.com`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "111122223333",
                    "444455556666"
                ]
            },
            "Action": "apigateway:CreateAccessAssociation",
            "Resource": "arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+a1b2c3"
        }
    ]
}
```

------

O exemplo de política a seguir refere-se à `policy` do serviço `execute-api`. Essa política concede aos endpoints da VPC `vpce-abcd1234` e `vpce-xyzz0000` acesso para invocar o nome de domínio personalizado privado.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.example.com+abcd1234",
            "Condition": {
                "StringNotEquals": {
                    "aws:SourceVpce": [
                        "vpce-abcd1234",
                        "vpce-xyzz0000"
                    ]
                }
            }
        }
    ]
}
```

------

# Consumidor de API: associar o endpoint da VPC a um nome de domínio personalizado privado compartilhado com você
<a name="apigateway-private-custom-domains-consumer-create"></a>

O procedimento a seguir mostra como consumir um nome de domínio privado em outra Conta da AWS. Dependendo da sua relação de confiança com o provedor de API, o AWS RAM pode concluir algumas tarefas para você.

Quando você está em uma Conta da AWS diferente da conta de um nome de domínio personalizado privado, só é possível associar o endpoint da VPC a um nome de domínio personalizado privado e invocá-lo. Não é possível visualizar a `policy` nem nenhum outro parâmetro do nome de domínio personalizado privado.

## Pré-requisitos
<a name="apigateway-private-custom-domains-consumer-prerequisites"></a>

Para consumir um nome de domínio personalizado privado em outra Conta da AWS, é necessário observar os seguintes pré-requisitos:
+ Uma VPC e um endpoint da VPC para o serviço `execute-api`. A VPC deve ter `enableDnsHostnames` e `enableDnsSupport` configurados como `true`.
+ Recomendamos configurar pelo menos duas zonas de disponibilidade por endpoint da VPC.

## (Opcional) Aceite o compartilhamento de recursos do domínio personalizado privado
<a name="apigateway-private-custom-domains-consumer-accept-resource-share"></a>

Se o provedor de API usou o AWS RAM para criar um compartilhamento de recursos, você tem **12 horas** para aceitá-lo. Se você estiver na mesma organização que está usando o AWS Organizations como provedor de API, o compartilhamento será aceito automaticamente. Se estiver em uma organização que tem recursos compartilhados automáticos habilitados, o recurso será compartilhado automaticamente com você.

------
#### [ Console de gerenciamento da AWS ]

Para usar o Console de gerenciamento da AWS, consulte [Accepting and rejecting resource share invitations](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared-invitations.html) no *Guia do usuário do AWS RAM*. 

------
#### [ AWS CLI ]

Para encontrar todos os recursos compartilhados com você, use o comando [get-resource-share-invitations](https://docs.aws.amazon.com/cli/latest/reference/ram/get-resource-share-invitations.html) indicado abaixo:

```
aws ram get-resource-share-invitations \
    --region us-west-2
```

Use o ARN de compartilhamento de recursos resultante para aceitar o convite de compartilhamento de recursos. O comando [accept-resource-share-invitation](https://docs.aws.amazon.com/cli/latest/reference/ram/accept-resource-share-invitation.html) a seguir aceita o compartilhamento de recursos.

```
aws ram accept-resource-share-invitation \
    --resource-share-invitation-arn arn:aws:ram:us-west-2:123456789012:resource-share-invitation/1e3477be-4a95-46b4-bbe0-c4001EXAMPLE \
    --region us-west-2
```

------

## Associe o endpoint da VPC a um nome de domínio personalizado privado compartilhado
<a name="apigateway-private-custom-domains-consumer-associate"></a>

Como os nomes de domínio personalizados privados não são exclusivos, você deve associar o endpoint da VPC ao ARN do nome de domínio personalizado exclusivo. Após a criação da associação de acesso ao nome de domínio, pode demorar até 15 minutos para que o endpoint da VPC invoque com sucesso o nome de domínio personalizado privado. Se você usa um endpoint da VPC para acessar um nome de domínio personalizado público, não o use para criar associações de acesso a nomes de domínio. 

------
#### [ Console de gerenciamento da AWS ]

**Como associar o endpoint da VPC a um nome de domínio personalizado privado compartilhado**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, escolha **Associações de acesso a nomes de domínio**.

1. Escolha **Criar uma associação de acesso ao nome de domínio**.

1. Em **ARN do nome de domínio**, selecione o ARN do nome de domínio que o provedor de API compartilhou com você.

   O ARN do nome de domínio pode não aparecer na lista suspensa. Você pode usar o console do AWS RAM para visualizar os nomes de domínio compartilhados com você e, em seguida, copiar o ARN do nome de domínio e inseri-lo nesse campo.

1. Em **IDs de endpoint da VPC**, selecione o ID do endpoint da VPC com o qual você deseja formar a associação de acesso ao nome de domínio.

1. Escolha **Criar uma associação de acesso ao nome de domínio**.

------
#### [ AWS CLI ]

Como os nomes de domínio personalizados privados não são exclusivos, você deve associar o endpoint da VPC ao ARN do nome de domínio personalizado exclusivo. Para localizar o ARN do nome de domínio, use um dos comandos a seguir.

1.   
**AWS RAM**  
Você pode usar o comando [list-resources](https://docs.aws.amazon.com/cli/latest/reference/ram/list-resources.html) a seguir para visualizar os recursos que são compartilhados com você. Para usar esse comando, o provedor de API deve ter usado o AWS RAM para compartilhar o respectivo domínio personalizado privado com você.  

   ```
   aws ram list-resources \
       --resource-owner OTHER-ACCOUNTS \
       --region us-west-2
       --resource-type apigateway:Domainnames
   ```  
**API Gateway**  
O comando `get-domain-names` a seguir lista todos os nomes de domínio personalizados privados pertencentes a outras Contas da AWS com as quais você pode formar associações de acesso a nomes de domínio.  

   ```
   aws apigateway get-domain-names \
       --resource-owner OTHER_ACCOUNTS \
       --region us-west-2
   ```

1.  Depois de recuperar o ARN, use o API Gateway para criar a associação de acesso ao nome de domínio entre o endpoint da VPC e um nome de domínio personalizado privado compartilhado. Use o seguinte comando `create-domain-name-access-association`:

   ```
   aws apigateway create-domain-name-access-association \
       --access-association-source-type VPCE \
       --access-association-source 'vpce-1a2b3c4d5e6f1a2b3' \
       --domain-name-arn arn:aws:apigateway:us-west-2:111122223333:/domainnames/private.example.com+abcd1234"
   ```

   A saída será exibida da seguinte forma:

   ```
   {
       "domainNameAccessAssociationARN": "arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg", 
       "accessAssociationSource": "vpce-1a2b3c4d5e6f1a2b3",
       "accessAssociationSourceType": "VPCE",
       "domainNameARN" : "arn:aws:apigateway:us-west-1:111122223333:/domainnames/private.example.com+a1b2c3"
   }
   ```

------

Depois de associar o endpoint da VPC ao nome de domínio personalizado privado, confirme se o provedor de API atualizou a política do nome de domínio personalizado privado para permitir que seu endpoint da VPC invoque o nome de domínio. Para obter mais informações, consulte [Permita que outras contas invoquem seu nome de domínio personalizado privado](apigateway-private-custom-domains-provider-share.md#apigateway-private-custom-domains-provider-policy-update).

## Como criar uma zona hospedada no Route 53
<a name="apigateway-private-custom-domains-consumer-create-route-53-private-hosted-zone"></a>

Para resolver o nome de domínio personalizado privado, você precisa criar uma zona hospedada privada do Route 53. Zona hospedada é um contêiner que abriga informações sobre como você deseja rotear o tráfego para um domínio dentro de uma ou mais VPCs sem expor seus recursos à internet. Para obter mais informações, consulte [Como trabalhar com zonas hospedadas privadas](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html).

------
#### [ Console de gerenciamento da AWS ]

Para usar o Console de gerenciamento da AWS, consulte [Creating a private hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html) no *Guia do desenvolvedor do Amazon Route 53*.

Em **Name**, use o nome do domínio personalizado privado. Em **ID da VPC**, use a VPC que contém o endpoint da VPC que você usou para a associação de acesso ao nome de domínio.

------
#### [ AWS CLI ]

O comando [create-hosted-zone](https://docs.aws.amazon.com/cli/latest/reference/route53/create-hosted-zone.html) indicado abaixo cria uma zona hospedada privada:

```
aws route53 create-hosted-zone --name private.example.com \
    --caller-reference 2014-04-01-18:47 \
    --hosted-zone-config Comment="command-line version",PrivateZone=true \
    --vpc VPCRegion=us-west-2,VPCId=vpc-abcd1234
```

A saída contém o ID da zona hospedada. Você usa o ID da zona hospedada nas etapas a seguir.

------

## Crie um registro de DNS A do Route 53.
<a name="apigateway-private-custom-domains-consumer-create-route-53-record"></a>

Depois de criar a zona hospedada, crie um registro para resolver o domínio personalizado privado. Neste exemplo, você cria um tipo de registro A. Se estiver usando IPv6 para o endpoint da VPC, crie um tipo de registro AAAA. Se estiver usando pilha dupla para o endpoint da VPC, crie um registro do tipo AAAA e um do tipo A.

------
#### [ Console de gerenciamento da AWS ]

Para usar o Console de gerenciamento da AWS, consulte [Routing traffic to an Amazon API Gateway API by using your domain name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-api-gateway.html).

Use **Criação rápida** e ative **Alias**. Para o endpoint, use o nome DNS do endpoint da VPC.

------
#### [ AWS CLI ]

Para configurar os registros de DNS para associar o nome de domínio personalizado privado ao nome de host do ID de zona hospedada fornecido, primeiro crie um arquivo JSON que contenha a configuração de um registro de DNS para o nome de domínio privado.

O comando `setup-dns-record.json` a seguir mostra como criar um registro de DNS `A` para associar um nome de domínio personalizado privado ao respectivo nome de host privado. Você fornece o `DNSName` do ID do DNS da VPC e o ID da zona hospedada que você criou na etapa anterior.

```
{
  "Changes": [
    {
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "private.example.com",
        "Type": "A",
        "AliasTarget": {
          "DNSName": "vpce-abcd1234.execute-api.us-west-2.vpce.amazonaws.com",
          "HostedZoneId": "Z2OJLYMUO9EFXC",
          "EvaluateTargetHealth": false
        }
      }
    }
  ]
}
```

O comando [change-resource-record-sets](https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html) indicado abaixo cria um registro de DNS para o nome de domínio personalizado privado:

```
aws route53 change-resource-record-sets \
    --hosted-zone-id ZABCDEFG1234 \
    --change-batch file://path/to/your/setup-dns-record.json
```

Substitua `hosted-zone-id` pelo ID da zona hospedada do Route 53 do conjunto de registros DNS na conta. O valor do parâmetro `change-batch` aponta para um arquivo JSON.

------

## Próximas etapas para um consumidor de API
<a name="apigateway-private-custom-domains-consumer-next-steps"></a>

Agora você pode invocar a API privada em sua Conta da AWS. Na VPC, você pode usar o comando curl a seguir para acessar o nome de domínio personalizado privado.

```
curl https://private.example.com/v1
```

Para ter mais informações sobre outras formas de invocar sua API privada, consulte [Invocar uma API privada usando um nome de domínio personalizado](apigateway-private-api-test-invoke-url.md#apigateway-private-custom-domains-provider-invoke).

# Consumidor de API: excluir a associação de acesso ao nome de domínio com um nome de domínio personalizado privado
<a name="apigateway-private-custom-domains-consumer-delete-domain-name-access-association"></a>

Se você for um consumidor de API, poderá excluir o recurso de associação de acesso a qualquer momento. O provedor de API não pode excluir a associação de acesso ao nome de domínio para você.

Recomendamos que você sempre exclua uma associação de acesso ao nome de domínio quando não a estiver mais usando.

------
#### [ Console de gerenciamento da AWS ]

**Como excluir a associação de acesso ao nome de domínio**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. No painel de navegação principal, escolha **Associações de acesso a nomes de domínio**.

1. Selecione sua associação de acesso ao nome de domínio e escolha **Excluir**.

1. Confirme sua escolha e selecione **Excluir**.

------
#### [ AWS CLI ]

O comando `delete-access-association` indicado abaixo exclui a associação de acesso:

```
aws apigateway delete-domain-name-access-association \
    --domain-name-access-association-arn 'arn:aws:apigateway:us-west-2:444455556666:/domainnameaccessassociations/domainname/private.example.com+abcd1234/vpcesource/vpce-abcd1234efg'
```

------

# Criar um nome de domínio personalizado para APIs privadas usando o CloudFormation
<a name="apigateway-private-custom-domains-cfn"></a>

O modelo de exemplo do CloudFormation a seguir cria uma API privada e um nome de domínio personalizado privado, associa a API privada ao nome de domínio personalizado e, em seguida, cria uma associação de acesso ao nome de domínio. Você precisa fornecer seu endpoint da VPC, nome de domínio e ARN do certificado.

As seguintes considerações podem afetar o uso do CloudFormation para criar um nome de domínio personalizado privado:
+ Não é possível rejeitar uma associação de acesso a um nome de domínio usando o CloudFormation. Para rejeitar uma associação de acesso a um nome de domínio, use o a AWS CLI.
+ Use a propriedade `AWS::ApiGateway::DomainNameV2` do CloudFormation para criar um nome de domínio personalizado privado.
+ Use a propriedade `AWS::ApiGateway:BasePathMappingV2` do CloudFormation para criar um mapeamento de caminho base.

```
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  EndpointID:
    Type: String
    Default: vpce-abcd1234567efg
    Description: A VPC endpoint with enableDnsHostnames and enableDnsSupport set to true.
  DomainName:
    Type: String
    Default: private.example.com
    Description: A domain name that you own.
  CertificateArn:
    Type: String
    Default: arn:aws:acm:us-west-2:123456789:certificate/abcd-000-1234-0000-000000abcd
    Description: An ACM certificate that covers the domain name.
Resources:
  PrivateApi:
    Type: 'AWS::ApiGateway::RestApi'
    Properties:
      EndpointConfiguration:
        Types:
          - PRIVATE
        VpcEndpointIds:
          - !Ref EndpointID
      Name: private-api
      Policy:
        Statement:
          - Action: 'execute-api:Invoke'
            Effect: Allow
            Principal: '*'
            Resource: 'execute-api:/*'
          - Action: 'execute-api:Invoke'
            Condition:
              StringNotEquals:
                'aws:SourceVpce': !Ref EndpointID
            Effect: Deny
            Principal: '*'
            Resource: 'execute-api:/*'
        Version: 2012-10-17		 	 	 
  PrivateApiDeployment:
    Type: 'AWS::ApiGateway::Deployment'
    Properties:
      RestApiId: !Ref PrivateApi
      Description: Private API deployment
    DependsOn:
      - PrivateApiMethod
  PrivateApiStage:
    Type: 'AWS::ApiGateway::Stage'
    Properties:
      RestApiId: !Ref PrivateApi
      DeploymentId: !Ref PrivateApiDeployment
      StageName: prod
  PrivateApiMethod: 
    Type: 'AWS::ApiGateway::Method'
    Properties:
      HttpMethod: ANY
      ResourceId: !GetAtt PrivateApi.RootResourceId
      RestApiId: !Ref PrivateApi
      AuthorizationType: NONE
      Integration:
        Type: MOCK
        RequestTemplates:
          application/json: "{\"statusCode\": 200}"
        IntegrationResponses:
          - StatusCode: '200'
      MethodResponses:
        - StatusCode: '200'
  PrivateDomainName:
    Type: AWS::ApiGateway::DomainNameV2
    Properties:
      DomainName: !Ref DomainName
      CertificateArn: !Ref CertificateArn
      EndpointConfiguration:
        Types:
          - PRIVATE
      SecurityPolicy: TLS_1_2
      Policy:
        Statement:
            - Action: 'execute-api:Invoke'
              Effect: Allow
              Principal: '*'
              Resource: 'execute-api:/*'
            - Action: 'execute-api:Invoke'
              Condition:
                StringNotEquals:
                  'aws:SourceVpce': !Ref EndpointID
              Effect: Deny
              Principal: '*'
              Resource: 'execute-api:/*'
        Version: 2012-10-17		 	 	 
  PrivateBasePathMapping:
    Type: AWS::ApiGateway::BasePathMappingV2
    DependsOn:
      - PrivateApiStage
    Properties:
      BasePath: prod
      DomainNameArn: !GetAtt PrivateDomainName.DomainNameArn
      RestApiId: !Ref PrivateApi
      Stage: prod
  DomainNameAccessAssociation: 
    Type: AWS::ApiGateway::DomainNameAccessAssociation
    Properties:
      DomainNameArn: !GetAtt PrivateDomainName.DomainNameArn
      AccessAssociationSource: !Ref EndpointID
      AccessAssociationSourceType: VPCE
```

# Invocar uma API privada
<a name="apigateway-private-api-test-invoke-url"></a>

Só é possível invocar uma API privada de dentro de uma VPC usando um endpoint da VPC. A API privada deve ter uma política de recursos que permita que VPCs e endpoints da VPC específicos invoquem a API.

Se você invocar uma API privada sem utilizar um nome de domínio personalizado ou nomes DNS privados e suas APIs ou o nome de domínio usar uma política de segurança que comece com `SecurityPolicy_`, você deverá definir o modo de acesso ao endpoint como `BASIC`. Para obter mais informações, consulte [Modo de acesso ao endpoint](apigateway-security-policies.md#apigateway-security-policies-endpoint-access-mode).

## Invocar uma API privada usando um nome de domínio personalizado
<a name="apigateway-private-custom-domains-provider-invoke"></a>

Para invocar uma API privada usando um nome de domínio personalizado, o endpoint da VPC precisa de uma associação de acesso ao nome de domínio com um nome de domínio personalizado e o nome de domínio personalizado precisa permitir o acesso do endpoint da VPC para invocá-lo. Para obter mais informações, consulte [Nomes de domínio personalizados para APIs privadas no API Gateway](apigateway-private-custom-domains.md).

Não há diferença entre invocar um nome de domínio personalizado privado em uma VPC em sua própria Conta da AWS ou em uma Conta da AWS diferente.

### Use seu nome de domínio personalizado
<a name="apigateway-private-custom-domains-invoke-1"></a>

Dentro da sua VPC, você pode invocar sua API usando o nome de domínio personalizado. O seguinte exemplo mostra um comando curl para invocar seu nome de domínio personalizado privado:

```
curl https://private.example.com
```

### Usar nomes de host DNS privados específicos do endpoint
<a name="apigateway-private-custom-domains-invoke-2"></a>

É possível invocar a API usando o nome de domínio personalizado e o nome de host DNS privado específico do endpoint.

```
curl https://private-dns-hostname.execute-api.region.vpce.amazonaws.com/basepath -H 'Host:custom-domain-name'
```

O exemplo a seguir mostra um comando curl para invocar o nome de domínio personalizado usando um nome de host DNS privado específico do endpoint:

```
curl https://vpce-123456-abc000.execute-api.us-east-2.vpce.amazonaws.com/test -H 'Host:private.example.com'
```

## Invocar uma API privada sem usar um nome de domínio personalizado
<a name="apigateway-private-api-invoke-without-custom-domain-name"></a>

Para invocar a API privada sem usar um nome de domínio personalizado, é necessário identificar os nomes DNS da API. O procedimento a seguir mostra como encontrar os nomes DNS.

------
#### [ Console de gerenciamento da AWS ]

**Como encontrar os nomes DNS**

1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. No painel de navegação principal, selecione **Endpoints** e escolha o endpoint de interface da VPC do API Gateway.

1. No painel **Detalhes**, você verá cinco valores no campo **Nomes DNS**. Os três primeiros são os nomes DNS públicos da API. Os outros dois são os nomes DNS privados dela.

------
#### [ AWS CLI ]

Use o comando [describe-vpc-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html) a seguir para listar os valores de DNS.

```
aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-01234567abcdef012
```

Os três primeiros são os nomes DNS públicos da API. Os outros dois são os nomes DNS privados dela.

------

### Invocar uma API privada usando um alias Route53
<a name="apigateway-private-api-route53-alias"></a>

É possível associar ou desassociar um endpoint da VPC de uma API privada. Para obter mais informações, consulte [(Opcional) Associar ou desassociar um endpoint da VPC a uma API privada](apigateway-private-api-create.md#associate-private-api-with-vpc-endpoint).

Depois de associar endpoints da VPC à API privada, você pode usar o seguinte URL base para invocar a API:

```
https://{rest-api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}
```

Por exemplo, se você configurou o método `GET /pets` para o estágio `test` e seu ID de API REST foi `01234567ab`, seu ID de endpoint da VPC foi `vpce-01234567abcdef012` e sua região foi `us-west-2`, poderá invocar a API como:

```
curl -v https://01234567ab-vpce-01234567abcdef012.execute-api.us-west-2.amazonaws.com/test/pets
```

### Invocar uma API privada usando nomes DNS privados
<a name="w2aac15c20c17c17b9b9"></a>

Se você tiver habilitado a opção de DNS privado, poderá acessar a API privada usando o seguinte nome DNS privado:

```
{restapi-id}.execute-api.{region}.amazonaws.com
```

A URL de base para invocar a API está neste formato:

```
https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}
```

Por exemplo, se você configurou o método `GET /pets` para o estágio `test` e seu ID de API REST foi `01234567ab` e sua região foi `us-west-2`, pode invocar a API privada inserindo o seguinte URL em um navegador:

```
https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets
```

Também é possível usar o seguinte comando cURL para invocar a API privada:

```
curl -X GET https://01234567ab.execute-api.us-west-2.amazonaws.com/test/pets 
```

**Atenção**  
Se habilitar a opção de DNS privado para o endpoint da VPC, você não poderá acessar o endpoint padrão para APIs públicas. Para obter mais informações, consulte [Por que não consigo me conectar à API pública em um endpoint da VPC do API Gateway?](https://repost.aws/knowledge-center/api-gateway-vpc-connections).

### Invocar uma API privada usando o Direct Connect
<a name="w2aac15c20c17c17b9c11"></a>

Você pode usar o Direct Connect para estabelecer uma conexão privada dedicada de uma rede on-premises com o Amazon VPC e acessar o endpoint da API privada nessa conexão usando nomes DNS públicos.

Você também pode usar nomes de um DNS privado para acessar a sua API privada em uma rede on-premises configurando um endpoint de entrada do Amazon Route 53 Resolver e encaminhando para ele todas as consultas de DNS do DNS privado pela sua rede remota. Para obter mais informações, consulte [Encaminhamento de consultas de DNS de entrada para as suas VPCs](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-forwarding-inbound-queries.html) no *Guia do desenvolvedor do Amazon Route 53*.

### Invocar uma API privada usando nomes de host DNS públicos específicos do endpoint
<a name="apigateway-private-api-public-dns"></a>

É possível acessar a API privada usando nomes de host DNS específicos de endpoint. Esses são os nomes de hosts DNS públicos que contêm o ID do VPC endpoint ou ID de API da API privada.

O URL base gerado está no seguinte formato:

```
https://{public-dns-hostname}.execute-api.{region}.vpce.amazonaws.com/{stage}
```

Por exemplo, se você configurar o método `GET /pets` para o estágio `test` e o ID de API REST for `abc1234`, o nome de host DNS público for `vpce-def-01234567` e a região for `us-west-2`, você poderá invocar a API privada usando o ID de VPCe dela com o cabeçalho `Host` em um comando cURL:

```
curl -v https://vpce-def-01234567.execute-api.us-west-2.vpce.amazonaws.com/test/pets -H 'Host: abc1234.execute-api.us-west-2.amazonaws.com'
```

Também é possível invocar a API privada pelo ID de API usando o cabeçalho `x-apigw-api-id` em um comando cURL no seguinte formato:

```
curl -v https://{public-dns-hostname}.execute-api.{region}.vpce.amazonaws.com/{stage} -H 'x-apigw-api-id:{api-id}'
```