Como posso usar um certificado de cliente emitido por terceiros ao configurar a autenticação TLS mútua para APIs do API Gateway?

4 minuto de leitura
0

Quero usar um certificado de cliente emitido por terceiros ao configurar a autenticação mútua de Transport Layer Security (TLS) para as APIs do Amazon API Gateway.

Resolução

Para usar um certificado de cliente assinado por terceiros para o API Gateway com autenticação TLS, siga as etapas a seguir:

  1. Crie um repositório confiável para usar o certificado assinado por terceiros.
  2. Crie um nome de domínio personalizado e um mapeamento de API para sua API do API Gateway.
  3. Crie um registro DNS para mapear o nome de domínio personalizado para o API Gateway.
  4. Desative o endpoint padrão.
  5. Teste a API.

Observação:

Crie um repositório confiável para usar o certificado assinado por terceiros

1.    Gere um RootCA. O RootCA é usado para emitir o certificado do cliente.

openssl genrsa -out RootCA.key 4096  

openssl req -new -x509 -days 3650 -key RootCA.key -out RootCA.pem

2.    Preencha os campos solicitados e insira o nome de domínio.

3.    Crie uma chave privada de certificado, solicitação de sinalização de certificado (CSR) e certificado de cliente.

openssl genrsa -out my_client.key 2048  

openssl req -new -key my_client.key -out my_client.csr

4.    Assine o certificado de cliente usando o CA que você criou anteriormente.

openssl x509 -req -in my_client.csr -CA RootCA.pem -CAkey RootCA.key -set_serial 01 -out my_client.pem -days 3650 -sha256

5.    Crie um bucket do Amazon Simple Storage Service (Amazon S3) para armazenar o arquivo truststore.pem.

6.    Faça upload do RootCA.pem para o repositório confiável do bucket do Amazon S3.

7.    (Opcional) Crie um arquivo da cadeia de certificado a partir do certificado CA intermediário para o Root CA.

Cat Intermediate.pem ca.pem >ca-chain.pem.

Para obter mais informações, consulte Configurar seu repositório confiável.

Crie um nome de domínio personalizado e um mapeamento de API para sua API do API Gateway

Observação: Somente certificados com um tamanho de chave de 2048 bits são visíveis com o API Gateway. O tamanho do certificado não pode exceder 2048 bits.

1.    Abra o console do API Gateway, em seguida, escolha Nomes de domínio personalizados.

2.    Em Nomes de domínio, insira seu nome de domínio e, em seguida, escolha Criar.

3.    Em Nome de domínio, insira seu nome de domínio.

4.    Para a Versão do TLS mínima, selecione TLS 1.2.

5.    Habilite a autenticação TLS mútua.

6.    Para o URI de repositório confiável, insira o URI do Amazon S3 que você criou anteriormente.

7.    Para a Configuração do endpoint, selecione Regional.

8.    Em Tipo de certificado, escolha seu tipo de certificado e, em seguida, escolha Criar nome do domínio.

9.    Escolha seu nome de domínio, e em seguida, Configurar mapeamentos de API.

10.    Escolha Adicionar novo mapeamento.

11.    Escolha a API, Etapa e Caminho para o mapeamento, em seguida, escolha Salvar.

Para mais informações, consulte Como posso configurar um nome de domínio para minha API do API Gateway?

Crie um registro DNS para mapear o nome de domínio personalizado para o API Gateway

Crie um registro DNS para apontar o nome de domínio personalizado para o nome de domínio regional do API Gateway. Isso permite que o tráfego vinculado ao nome de domínio personalizado seja roteado para o nome de host regional da API. O registro DNS pode ser do tipo CNAME ou “A Alias”.

Para obter mais informações, consulte Como configurar o Route 53 para rotear o tráfego para um endpoint do API Gateway.

Desabilitar o endpoint padrão

Por padrão, os clientes podem invocar as APIs usando o endpoint execute-api que o API Gateway gera para a sua API. Desative o endpoint execute-api padrão de forma que os clientes possam acessar a sua API usando apenas um nome de domínio personalizado.

Para APIs HTTP, consulte Desabilitar o endpoint padrão para uma API HTTP.

Para APIs REST, consulte Desabilitar o endpoint padrão para uma API REST.

Teste a API

Teste a API com os parâmetros --key e --cert para enviar o certificado do cliente como parte da solicitação.

$ curl -v https://{YourCustomDomainName}/{resource} --key my_client.key --cert my_client.pem

Observação:A chave privadamy_client.key e o certificado do cliente my_client.pem devem ser incluídos para uma solicitação bem-sucedida.

Informações relacionadas

Como posso solucionar problemas de cadeia de certificados e certificados autoassinados para o Amazon API Gateway com domínios personalizados e TLS mútuo habilitados?

Apresentar a autenticação TLS mútua para o Amazon API Gateway

Como soluciono erros HTTP 403 Forbidden de um nome de domínio personalizado do API Gateway que exige TLS mútuo?