Ir para o conteúdo

Como soluciono erros com certificados SSL gerados pelo API Gateway?

3 minuto de leitura
0

Quero resolver problemas com certificados SSL autoassinados e expirados gerados pelo Amazon API Gateway que instalei no meu sistema de backend.

Resolução

Teste a integração do proxy HTTP

Use o console do API Gateway para testar certificados SSL incorretos. Para obter uma lista de certificados SSL incorretos, consulte badssl.com no site Bad SSL.

Conclua as etapas a seguir:

  1. Crie um recurso chamado /selfsigned.
  2. Crie um método GET no recurso.
  3. Configure uma integração de proxy HTTP com a URL.
  4. Abra o console do API Gateway.
  5. Teste a API.
  6. Repita cada uma das etapas anteriores com um recurso chamado /expiredcert e, em seguida, outro recurso chamado /untrustedRootCA.

Para o recurso chamado /selfsigned, você recebe a seguinte mensagem de erro:

“Thu Dec 15 16:05:05 UTC 2022 : Sending request to https://self-signed.badssl.com/
Thu Dec 15 16:05:05 UTC 2022 : Execution failed due to configuration error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”

Para o recurso chamado /expiredcert, você recebe a seguinte mensagem de erro:

“Thu Dec 15 16:06:02 UTC 2022 : Sending request to https://expired.badssl.com/
Thu Dec 15 16:06:02 UTC 2022 : Execution failed due to configuration error: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed”

Para o recurso chamado /untrustedRootCA, você recebe a seguinte mensagem de erro:

“Thu Dec 15 16:06:28 UTC 2022 : Sending request to https://untrusted-root.badssl.com/
Thu Dec 15 16:06:28 UTC 2022 : Execution failed due to configuration error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”

Resolver erros de configuração

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Quando um Network Load Balancer tem um receptor TLS, o Network Load Balancer executa uma terminação TLS e cria outra conexão com o destino. O certificado anexado ao Network Load Balancer deve atender a todos os requisitos.

Um Network Load Balancer não realiza a validação do certificado durante o handshake SSL com o alvo. O Network Load Balancer aceita certificados expirados ou autoassinados que você instalou nas instâncias de destino. O Network Load Balancer e os grupos-alvo estão vinculados a uma nuvem privada virtual (VPC). Se o Network Load Balancer estiver usando um receptor TCP, o handshake TLS acontecerá de ponta a ponta. Nesse caso, a aplicação de backend deve atender aos requisitos de SSL.

O API Gateway oferece suporte à indicação de nome de servidor (SNI) durante um handshake SSL por meio de uma integração de link VPC.

Se o Network Load Balancer de backend tiver um certificado autoassinado ou privado que uma autoridade de certificação (CA) não emitiu, você receberá a seguinte mensagem de erro:

“Execution failed due to configuration error: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”

Para resolver esse problema, execute o seguinte comando update-integration da AWS CLI e defina insecureSkipVerification como verdadeiro no objeto tlsConfig da integração:

aws apigateway update-integration --rest-api-id EXAMPLE-REST-API-ID --resource-id EXAMPLE-RESOURCE-ID --http-method GET --patch-operations "op='replace',path='/tlsConfig/insecureSkipVerification',value=true"

Observação: substitua EXAMPLE-REST-API-ID e EXAMPLE-RESOURCE-ID por seus valores.

Informações relacionadas

Gere e configure um certificado SSL para autenticação de backend no API Gateway