Como posso usar um certificado de cliente emitido por terceiros ao configurar a autenticação com TLS mútuo para APIs do API Gateway?
Data da última atualização: 16/12/2022
Quero usar um certificado de cliente emitido por terceiros ao configurar a autenticação de Transport Layer Security (TLS) mútuo 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 estas etapas:
- Crie um repositório confiável para usar o certificado assinado por terceiros.
- Crie um nome de domínio personalizado e um mapeamento de API para sua API do API Gateway.
- Crie um registro DNS para mapear o nome de domínio personalizado para o API Gateway.
- Desative o endpoint padrão.
- Teste a API.
Observações:
- Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), confirme se está usando a versão mais recente da AWS CLI.
- O TLS mútuo não é compatível com APIs privadas.
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 obrigatórios e insira o nome do domínio.
3. Crie uma chave privada de certificado de cliente, uma solicitação de assinatura de certificado (CSR) e um 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 do cliente usando a 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 o upload do RootCA.pem para o truststore do bucket Amazon S3.
7. (Opcional) Crie um arquivo de cadeia de certificados do certificado CA intermediário para a CA raiz.
Cat Intermediate.pem ca.pem >ca-chain.pem.
Para obter mais informações, consulte Configuração do truststore.
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 e escolha Nomes de domínio personalizados.
2. Em Nomes de domínio, insira seu nome de domínio e escolha Criar.
3. Em Nome de domínio, insira seu nome de domínio.
4. Para a versão mínima do TLS, escolha TLS 1.2.
5. Habilite a autenticação de TLS mútuo.
6. Para o URI do Truststore, insira o URI do Amazon S3 que você criou anteriormente.
7. Para Configuração de endpoint, escolha Regional.
8. Em Tipo de certificado, escolha seu tipo de certificado, e escolha Criar nome de domínio.
9. Escolha seu nome de domínio personalizado e escolha Configurar mapeamentos de API.
10. Escolha Adicionar novo mapeamento.
11. Escolha a API, a Fase e o Caminho para o mapeamento e, em seguida, escolha Salvar.
Para obter mais informações, consulte Como posso configurar um nome de domínio personalizado 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 APIs usando o endpoint execute-api que o API Gateway gera para sua API. Desative o endpoint execute-api padrão para que os clientes possam acessar sua API usando somente um nome de domínio personalizado.
Para APIs HTTP, consulte Como desabilitar o endpoint padrão para uma API HTTP.
Para obter mais informações, consulte Como desativar o endpoint padrão para uma API REST.
Testar 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 privada my_client.key e o certificado do cliente my_client.pem devem ser incluídos para uma solicitação bem-sucedida.
Informações relacionadas
Este artigo ajudou?
Precisa de ajuda com faturamento ou suporte técnico?